我一直试图创建一个Java程序来读取包含100个整数的文件“ 100.txt”,然后将它们存储到一个int数组中。稍后,我将让它打印数组并对数组中的数字进行排序,但是我想获取它以读取文本文件并将数字存储在数组中,然后首先将其转换为int数组。我该怎么办?
我尝试了一些不同的事情。我知道如何从扫描仪读取文本文件并创建数组,但是我从未更改过类型(在这种情况下,将String更改为int)。如果你们中的任何一个可以帮助我,并给我一些如何实现的建议,那将不胜感激。
try
{
File file = new File("100.txt");
Scanner input = new Scanner(file);
while (input.hasNextLine())
{
String line = input.nextLine();
System.out.println(line);
}
input.close();
}
catch (Exception ex)
{
ex.printStackTrace();
}
int[] array = new int[file.length];
int i, n = array.length;
for (i = 0; i < n; i++)
{ array[i] = Integer.parseInt(file[i]);
}
}
答案 0 :(得分:1)
假设您知道文件的行数,则可以使用此代码。另外请注意,将其作为BufferedReader读取并将其传递给扫描仪会更有效。
我试图使它尽可能简单,但是如果您有任何疑问,请随时提出。
public int[] readFile(String filePath)throws Exception
{
int[] array = new int[100];
Scanner sc = new Scanner(new BufferedReader(new FileReader(new File(filePath))));
for(int i=0;sc.hasNextLine();i++)
{
array[i]=Integer.parseInt(sc.nextLine());
}
return array;
}
答案 1 :(得分:0)
尝试
public Integer[] ReadFromFile(String fileName) {
List listInt = new LinkedList<Integer>();
try {
Scanner input = new Scanner(new File(fileName));
while (input.hasNextLine()) {
String value = input.nextLine();
listInt.add(Integer.parseInt(value));
System.out.println(value);
}
input.close();
} catch (Exception ex) {
ex.printStackTrace();
}
return (Integer[]) listInt.stream().toArray();
}