java--进步学习IO

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()操作是很有帮助的。

你可能感兴趣的:(java)