简单的Java逐行读取

时间:2013-11-12 04:30:12

标签: java file io

我输入的格式为:

12 : 13 24 1 2
2 : 1 4
9 : 0 1 82
...

我想在每一行中读取一个StringStream,然后逐个读取每个StringStream。

  

例如,第1行将存储为StringStream“12:13 24 1   2“,然后我可以一块一块地阅读它(”12“,”:“,”13“,   “24”,“1”,“2”)(类似cin>>在C ++中使用stingstream)。

在Java中执行此操作的最佳方法是什么?

5 个答案:

答案 0 :(得分:1)

您要做的事情称为令牌化:)

// pretty standard open file with buffered reader.
File           file               = new File("inputFileName");
FileReader     fileReader         = new FileReader(file);
BufferedReader bufferedFileReader = new BufferedReader(fileReader);

// The string that will hold the content of each line.
String line;

// Read each line and store string content in line.
while((line=bufferedFileReader.readLine())!=null)
{
   // Create a tokenizer to split the string into tokens.
   StringTokenizer tokenizedLine= new StringTokenizer(line);

   // For each token in the current line so something
   while (while (tokenizedLine.hasMoreTokens()) 
   {
         System.out.println(tokenizedLine.nextToken());
   }
}

答案 1 :(得分:0)

BufferedReader.readLine()读取行,然后java.util.Scanner分割每一行。

答案 2 :(得分:0)

您可以使用BufferedReader类读取行内容。

BufferedReader br = new BufferedReader(new FileReader(new File("c:\\text.txt")));

使用 br.readLine()逐行阅读内容。

答案 3 :(得分:0)

    FileReader fileReader = new FileReader(new File("sample.txt"));
    BufferedReader bufferedReader = new BufferedReader(fileReader);
    String str;
    while((str=bufferedReader.readLine())!=null)
    {
        System.out.println(str);
    }

阅读完毕后,您可以split()使用:,然后使用''(空格)。你会得到预期的结果。

答案 4 :(得分:0)

Java在这方面与C ++略有不同。 Java InputStream在字节级读取/写入事物,Java Reader类在字符级读/写。在您的示例中,您应该选择一个Reader类,例如java.io.StringReader用于内存中String类型的内容,或者选择文件中的输入数据使用FileReader。读者有多种选择(见http://docs.oracle.com/javase/6/docs/api/

除非您想自己查找换行符分隔符,否则可以将上述读者之一与java.io.BufferedReader结合使用readLine()方法一次读取一行。在BufferedReader的Javadocs中有一个例子,可以将它与FileReader一起使用。