• 牛客网Java刷题知识点之字节流练习之从A处复制文本文件到B处(FileReader、FileWriter )、复制文本文件的原理图解


      不多说,直接上干货!

    CopyTextTest.java

    package zhouls.bigdata.DataFeatureSelection.test;
    
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    /*
     * 需求:作业:将c盘的一个文本文件复制到d盘。
     * 
     * 思路:
     * 1,需要读取源,
     * 2,将读到的源数据写入到目的地。
     * 3,既然是操作文本数据,使用字符流。 
     * 
     */
    
    public class CopyTextTest {
        /**
         * @param args
         * @throws IOException 
         */
        public static void main(String[] args) throws IOException {
    
            //1,读取一个已有的文本文件,使用字符读取流和文件相关联。
         FileReader fr = new FileReader("a.txt");
            //2,创建一个目的,用于存储读到数据。
         FileWriter fw = new FileWriter("b.txt");
            //3,频繁的读写操作。
            int ch = 0;
            while((ch=fr.read())!=-1){
                fw.write(ch);
            }
            //4,关闭流资源。     
            
            fw.close();
            fr.close();
        }
    }

      还可以这样来写。

    CopyTextTest.java

    package zhouls.bigdata.DataFeatureSelection.test;
    
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException; 
    
    public class CopyTextTest{
        private static final int BUFFER_SIZE = 1024;
        /**
         * @param args
         */
        public static void main(String[] args) {
            FileReader fr = null;
            FileWriter fw = null;
            try {
                fr = new FileReader("a.txt");
              fw = new FileWriter("b.txt");
                
                //创建一个临时容器,用于缓存读取到的字符。
                char[] buf = new char[BUFFER_SIZE];//这就是缓冲区。 
                
                //定义一个变量记录读取到的字符数,(其实就是往数组里装的字符个数 )
                int len = 0;
                
                while((len=fr.read(buf))!=-1){
                    fw.write(buf, 0, len);//从哪里开始写,写多少个
                }
                
            } catch (Exception e) {
                throw new RuntimeException("读写失败");
            }finally{
                if(fw!=null)
                    try {
                        fw.close();
                    } catch (IOException e) {
                        
                        e.printStackTrace();
                    }
                if(fr!=null)
                    try {
                        fr.close();
                    } catch (IOException e) {
                        
                        e.printStackTrace();
                    }
            }
        }
    }

  • 相关阅读:
    Dynamic Shortest Path CodeForces
    New task CodeForces
    New Roads CodeForces
    Music in Car CodeForces
    互联网思维体系--史上最全的互联网思维精髓总结
    OpenGL Shader Key Points (3)
    Netfilter的使用和实现
    数据包接收系列 — IP协议处理流程(二)
    数据包接收系列 — IP协议处理流程(一)
    数据包接收系列 — NAPI的原理和实现
  • 原文地址:https://www.cnblogs.com/zlslch/p/7577518.html
Copyright © 2020-2023  润新知