Java 文件读取器方法
所以我编写了这个文件读取器方法,它应该返回文件中所有内容的字符串,但它不能正常工作。写入文件的工作非常完美,但这种读取方法不行。该方法当前所做的是读取最后添加的字符串/文本,但不从头到尾读取文件。”br'是我的bufferedReader,它在同一类中的其他地方声明。 下面是br的定义:Java 文件读取器方法,java,logic,bufferedreader,filereader,Java,Logic,Bufferedreader,Filereader,所以我编写了这个文件读取器方法,它应该返回文件中所有内容的字符串,但它不能正常工作。写入文件的工作非常完美,但这种读取方法不行。该方法当前所做的是读取最后添加的字符串/文本,但不从头到尾读取文件。”br'是我的bufferedReader,它在同一类中的其他地方声明。 下面是br的定义: private static FileInputStream fis; private static BufferedReader br; 然后在构造函数中: fis = new FileInputStrea
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;
我知道我要么犯了逻辑错误,要么犯了一些明显的错误,我只是不知道在哪里 如果要读取整个文件两次,下次必须关闭它并打开新的流/读取器
这些流/读取器应该是方法的本地流/读取器,而不是成员,当然也不是静态流/读取器 使用文件和
FileReader
可以从目录中读取/写入文件
您可以使用File
class对象获取文件
File file = new File("file.txt");
在读取该文件的过程之后
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);
我知道我要么犯了逻辑错误,要么犯了一些明显的错误,我只是不知道在哪里代码>调试告诉您什么?您是如何定义br的?因此您多次使用同一个BufferedReader
实例?您是否曾将其返回到文件的开头?此代码将读取文件中的所有内容一次。NB Java 7不会使用此语法自动关闭任何内容。你应该手动关闭它。然后,您可能会发现您多次调用此方法;-)确切地它告诉您在关闭文件后正在调用该方法。第一次,它读取整个文件。第二次,在您删除close()之后,
文件仍然处于打开状态,因此它提供了自第一次以来添加到文件中的所有内容。如果要读取整个文件两次,则必须关闭它并打开新的流。但是,如果应用程序需要不断地重新读取同一个文件,那么它就有问题了。你为什么认为你需要这么做?