1
0
0
0
1
1
1
有一个文本文件必须逐行读取到数组中下面的代码,但它只停在第一行。因为它得到了第一个ineger" 1"并且没有逐行到达其余的整数
String fileName = "input.txt";
File file = new File(fileName);
Scanner scanner = new Scanner(file);
// String s = "";
while(scanner.hasNextLine()){
data1 = scanner.nextLine();
}
for ( int i = 0; i < data1.length(); i++)
{
covertDataArray[i] = Byte.parseByte(data1.substring( i, i+1));
}
答案 0 :(得分:3)
让我们来看看代码。
while(scanner.hasNextLine()){
data1 = scanner.nextLine();
}
data1将始终只包含您在其中读取的最新行的内容。
要修复,只需添加到变量:
while(scanner.hasNextLine()){
data1 += scanner.nextLine();
}
答案 1 :(得分:1)
你总是在while循环中替换data1
的内容:
data1 += scanner.nextLine();
答案 2 :(得分:1)
那就是:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class LineByLine {
public static void main(String[] args) throws FileNotFoundException {
String fileName = "input.txt";
File file = new File(fileName);
Scanner scanner = new Scanner(file);
int len = 0;
int [] covertDataArray = new int[100];
while (scanner.hasNextLine()) {
String data1 = scanner.nextLine();
covertDataArray[len] = Integer.parseInt(data1.trim());
len++;
}
for (int i = 0; i < len; i++) {
System.out.println(covertDataArray[i]);
}
}
}
答案 3 :(得分:0)
这可能是由于“数据”不是数组。它正在做的是每次迭代while循环时重写对象数据。
我建议制作Data和ArrayList(因为它是一个灵活的数组)并使用它来存储数据。
以下是代码的示例:
ArrayList<Integer> data1 = new ArrayList<>;
while(scanner.hasNextLine()){
data1.addObject(scanner.nextLine());
}
如果使用此方法,则无需解析单个整数,这将提高程序的性能。