我想从文件中的一行读取数据。在Java中

时间:2012-03-25 18:05:05

标签: java line bufferedreader

我目前正在尝试从java中读取多行(来自指定文件)的某些数据。

例如,下面的行我想存储数组中每行的数值,我不想将整行读入数组(我已经可以这样做了)

      Firstname 100700 Lastname
      Firstname 260000 Lastname
      Firstname 303000 Lastname
      Firstname 505050 Lastname

我如何在我的代码中添加一些东西,允许程序在我的场景中读取数值数据。(顺便说一句,空间应该在那里)          BufferedReader输入;

    input = new BufferedReader(new FileReader("file.txt"));// file to be read from
    String Line;
    int i = 0;
    int[]number=new int[4];
    while (Line != null)
    {
        Line = input.readLine(); 

       // Then i would need something down here to read the numerical values?
        number[i]=????

        i++
    }

任何帮助都将不胜感激。

感谢。

4 个答案:

答案 0 :(得分:2)

Hava查看String.split()Integer.parseInt()

您可以使用Line.split(" ")String分割为String[],然后使用Integer.parseInt(myArray[1])将该数字设为int

另请注意:在java中,约定是变量以小写字母开头,因此您应该考虑重命名Line - > line

答案 1 :(得分:1)

input = new BufferedReader(new FileReader("file.txt"));// file to be read from
String line;
int i = 0;
int[]number=new int[4];
while (line != null)
{
    line = input.readLine(); 
    // here is my refinement
    String[] x = line.Split();
    System.out.println("FirstName: " + x[0]);
    System.out.println("Number: " + x[1]);
    System.out.println("LastName: " + x[2]);

    i++
}

答案 2 :(得分:0)

试试这个

String line = input.readLine();
if (line != null) {
   int number = Integer.parseInt(line.replaceAll("[^\\d]", ""));
   ...
}

答案 3 :(得分:0)

Scanner.hasNextInt().nextInt()。您可以使用它们来读取数字。否则你可以使用Pattern类的一些正则表达式,或者使用amit的建议。