如何从文本文件中读取记录?

时间:2014-11-15 04:16:45

标签: java

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

它不停止并且只重复读取我之前输入的一条记录并写入文件中...如何在读取记录时读取记录并使用标记化?

4 个答案:

答案 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类

StringTokenizer st = new StringTokenizer(line);
while (st.hasMoreTokens()) {
     System.out.println(st.nextToken());
}

st.hasMoreTokens() - 将检查是否存在更多令牌。
st.nextToken() - 将获得下一个标记

String.split()

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") - 将linespace分开作为分隔符。它返回一个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();
    }

}