import java.io.*; public class Demo1 { public static void main(String []args) throws Exception{ File fileOut = new File("Out.txt"); File fileOut2 = new File("In.txt"); BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); // FileWriter fileWrite = new FileWriter(fileOut);//将从控制台读取的数据存入该文件 FileWriter fileWrite2 = new FileWriter(fileOut2);//将从第一个文件中读取的数据保存至第二个文件 //设置文件流的处理流 BufferedWriter bfOut = new BufferedWriter(fileWrite); BufferedWriter bfOut2 = new BufferedWriter(fileWrite2); // 从控制台读入数据 写入第一个文件 String string = bf.readLine(); bfOut.write(string); bfOut.newLine(); bfOut.close(); File fileIn = new File("Out.txt"); FileReader fileRead = new FileReader(fileIn);//从第一个文件中读取数据 BufferedReader bfIn = new BufferedReader(fileRead); // 从第一个文件中读取数据,写入另外一个文件,同时展现在控制台中 String string2 = bfIn.readLine();//读取 bfOut2.write(string2);//写入 System.out.println(string2); // fileRead.close(); // fileWrite.close(); bfIn.close(); bfOut.close(); bfOut2.close(); } }
废了好大的劲终于搞明白了,刚开始的时候,处理文件,同时定义两个流对象(一个打开一个关闭)指向同一个文件,这样就会导致同一个文件同时要被写入和读出,这样就会出现错误,类似于线程的同步性问题。
另外,文件流在添加了处理流的套接的时候,可以只关闭处理流。
文件的处理必须要关闭!!!flush()操作是很有帮助的。