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

  • 相关阅读:
    JVM基础
    JVM基础
    python相关
    charles 的配置与使用
    大型缓存架构实战
    redis环境搭建
    多线程与并发 | 线程池
    JVM | 内存溢出和解决方案
    读书笔记 | Mysql是怎样运行的
    读书笔记 | Java并发编程实战
  • 原文地址:https://www.cnblogs.com/plxx/p/3418895.html
Copyright © 2020-2023  润新知