我输入的格式为:
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中执行此操作的最佳方法是什么?
答案 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一起使用。