文件阅读器方法

时间:2015-05-29 00:30:31

标签: java logic bufferedreader filereader

所以我编写了这个文件阅读器方法,它应该返回文件中所有内容的字符串,但它不能正常工作。写入文件工作得很好,但这种阅读方法并不适用。当前该方法的作用是读取添加的最后一个字符串/文本,但它不会从头到尾读取文件。 &#39峰; br'是我的bufferedReader,它在同一个类的其他地方声明。 以下是br的定义:

private static FileInputStream fis;
private static BufferedReader br;

然后在构造函数中:

fis = new FileInputStream(file);
br = new BufferedReader(new InputStreamReader(fis));

以下是方法:

public String readStuff(){
    String line = "";
    String r = "";
    try{
        while((line = br.readLine()) != null){
            System.out.println(line + " read ");
            r+= line;
        }
        //br.close(); JDK 7 does this automatically apparently
    }catch(IOException e){
        e.printStackTrace();
        System.out.println("Error at readStuff!");
    }
    return r;

我知道我犯了一个逻辑错误或一些明显的错误,我只是不知道在哪里。

2 个答案:

答案 0 :(得分:1)

如果您想要阅读整个文件两次,则必须关闭它并在下次打开新的流/阅读器。

那些流/读者应该是方法的本地,而不是成员,当然不是静态的。

答案 1 :(得分:0)

使用文件和FileReader您可以从Dir读取/写入文件。

您可以使用File类对象

获取文件
File file = new File("file.txt");

和After Process读取该文件

FileReader fr = new FileReader(file);

有整个代码可以读取文件...

File file = new File("G:\\Neon\\data.txt");
        FileReader fr = new FileReader(file);
        String data = "";
        while((i = fr.read()) != -1)
        {
            data = data + (char)i;
        }
System.out.println(data);