逐行读取,在java中输入数组

时间:2014-04-22 16:58:09

标签: java

   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));
}

4 个答案:

答案 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());
}

如果使用此方法,则无需解析单个整数,这将提高程序的性能。