一个读写文件操作,代码如下:public class FileTest {
public static void main(String[] args) {

try {
//创建一个新文件
File f = new File("E:\\cart.txt");
f.createNewFile();

BufferedWriter output = new BufferedWriter(new FileWriter(f));
String str = "123456789123456789123456789";
System.out.println("原文件内容:" + str );
output.write(str);
output.close();

//读出文件
BufferedReader reader = new BufferedReader(new FileReader("E:\\cart.txt"));
while(reader.read() >= 0){
System.out.println("再次读内容:" + reader.readLine());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
结果:
原文件内容:123456789123456789123456789
再次读内容:23456789123456789123456789
检查cart.txt没有问题,问题在哪里?

解决方案 »

  1.   

    reader.read()已经读了一个字符了
      

  2.   

    while(reader.read() >= 0){
    这里已经读过一个字符了,reader的游标已经在第二个字符了,所以后面的readLine()是从第二个字符开始的一行
    可以改为while(reader.ready()){
      

  3.   

    while应该用reader.readLine()判断。谢谢~
      

  4.   

    没错,应该这样判断:
    String s;
    while(s=reader.readLine() != null){...}