I tried this:
public static void ReadRecord()
{
String line = null;
try
{
FileReader fr = new FileReader("input.txt");
BufferedReader br = new BufferedReader(fr);
line = br.readLine();
while(line != null)
{
System.out.println(line);
}
br.close();
fr.close();
}
catch (Exception e)
{
}
}
}
它不停止并且只重复读取我之前输入的一条记录并写入文件中...如何在读取记录时读取记录并使用标记化?
答案 0 :(得分:3)
您必须使用br.readLine()
在循环中重复读取文件中的行。 br.readLine()
只读取一行。
做这样的事情:
while((line = br.readLine()) != null) {
System.out.println(line);
}
如果您遇到问题,请检查此链接。 http://www.mkyong.com/java/how-to-read-file-from-java-bufferedreader-example/
如果您想将字符串拆分为标记,可以使用StringTokenizer
类,也可以使用String.split()
方法。
StringTokenizer st = new StringTokenizer(line);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
st.hasMoreTokens()
- 将检查是否存在更多令牌。
st.nextToken()
- 将获得下一个标记
String[] result = line.split("\\s"); // split line into tokens
for (int x=0; x<result.length; x++) {
System.out.println(result[x]);
}
line.split("\\s")
- 将line
与space
分开作为分隔符。它返回一个String数组。
答案 1 :(得分:1)
试试这个
while((line = br.readLine()) != null)
{
System.out.println(line);
}
答案 2 :(得分:0)
试试这个:
BufferedReader br = new BufferedReader(new FileReader("input.txt"));
while((line=br.readline())!=null)
System.out.println(line);
答案 3 :(得分:0)
例如,对于一个名为access.txt的文本文件,请在您的X驱动器上找到该文件。
public static void readRecordFromTextFile throws FileNotFoundException
{
try {
File file = new File("X:\\access.txt");
Scanner sc = new Scanner(file);
sc.useDelimiter(",|\r\n");
System.out.println(sc.next());
while (sc.hasNext()) {
System.out.println(sc.next());
}
sc.close();// closing the scanner stream
} catch (FileNotFoundException e) {
System.out.println("Enter existing file name");
e.printStackTrace();
}
}