這裏是我的代碼,我有一個應該讀取文件的任務,並將每個整數添加到ArrayList中,將列表分爲一半並將一半放在一個列表中,一半放入另一列表中,對列表進行排序,然後合併它們,並從隨機索引中打印出50個整數。該文件包含大量的整數,所以這就是爲什麼隨機的索引如此之高。我不確定我的程序正在讀取我向它提出的文件輸入
import java.util.*;
import java.io.*;
public class ProjectList
{
static ArrayList<Integer> myList = new ArrayList<>();
static ArrayList<Integer> myList1 = new ArrayList<>();
static ArrayList<Integer> myList2 = new ArrayList<>();
static int size = myList.size();
static int size1 = myList1.size();
static int size2 = myList2.size();
public static void readFile() throws FileNotFoundException
{
Scanner input = new Scanner("numbers.txt");
while (input.hasNextInt())
{
myList.add(input.nextInt());
}
}
public static void dividePoint()
{
for (int i = 0; i < size/2; i++)
{
myList1.add(myList.get(i));
}
for (int i = size/2; i < size; i++)
{
myList2.add(myList.get(i));
}
}
public static void sort()
{
int x = 0;
int y = 0;
for (int j = 0; j < size; j++)
{
for (int i = 0; i < size - 1; i++)
{
x = myList1.get(i);
y = myList1.get(i + 1);
if (x > y)
{
myList1.remove(i);
myList1.remove(i + 1);
myList1.add(i, y);
myList1.add((i + 1), x);
}
}
}
for (int j = 0; j < size; j++)
{
for (int i = 0; i < size - 1; i++)
{
x = myList2.get(i);
y = myList2.get(i + 1);
if (x > y)
{
myList2.remove(i);
myList2.remove(i + 1);
myList2.add(i, y);
myList2.add((i + 1), x);
}
}
}
}
public static void merge()
{
while (size1 + size2 > 0)
{
int x = myList1.get(0);
int y = myList2.get(0);
if (x < y)
{
myList.add(myList1.get(0));
System.out.println("Now removing " + myList1.get(0) + "from myList1.");
myList1.remove(0);
}
if (y < x)
{
myList.add(myList2.get(0));
myList2.remove(0);
}
}
}
public static void printRandom()
{
Random dice = new Random();
int random = dice.nextInt(1000);
for (int i = random; i < random + 51; i++)
{
System.out.println(myList.get(i));
}
}
public static void main(String[] args) throws FileNotFoundException
{
readFile();
dividePoint();
sort();
merge();
printRandom();
}
}
我的問題在於,無論何時運行main,都不會彈出任何內容。我已經嘗試了一些解決方案,例如製作一個新文件並僅放入大約15個整數,以便程序沒有太多需要讀取的內容,並且將文件從原始的「.dat」格式更改爲「 .txt「文件,但這些文件尚未取得成功。
您正在向掃描器對象傳遞字符串而不是文件對象。改爲創建一個文件對象並傳遞給它,而不是一個字符串。有關更多詳細信息,請查閱javadoc for scanner類。 – Dummy
類似於Scanner input = new Scanner(new FileReader(「numbers.txt」)); – JavaQuest