JavaSE基础之 IO_Buffer

IO_Buffer

整合
public class Main {
    public static void main(String[] args) {
        /**
         * 复制一个文件
         */
        //获取要读的文件
        copy(“/Users/dllo/Desktop/地址.txt”,"/Users/dllo/Desktop/新地址.txt");
    }

    //将 一段代码提取成一个方法 选中代码段 + cmd+alt+m
    private static void copy(String s, String s1) {
        try {
            FileInputStream fis = new FileInputStream(s);
            FileOutputStream fos = new FileOutputStream(s1);
            byte[] bytes = new byte[1024];
            int length = 0;
            while ((length = fis.read(bytes)) != -1) {
                fos.write(bytes,0,length);
            }
            fos.close();
            fis.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

BufferedReader  BufferedWriter
public class BufferTest {
    public static void main(String[] args) {
        /**
         * 字节流 主要应用的是FileInputStream FileOutputStream
         *
         * 字符流主要应用 FileReader FileWriter
         *              BufferedReader BufferedWriter
         */

        read("/Users/dllo/Desktop/地址");
        write("/Users/dllo/Desktop/输出.txt");

    }

    private static void write(String writePath) {
        try {
            FileWriter fileWriter = new FileWriter(writePath);
            BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
            System.out.println("请输入内容");
            String content = new Scanner(System.in).nextLine();
            bufferedWriter.write(content);
            //
            bufferedWriter.newLine();
            bufferedWriter.append("署名:luke");

            //!!!!!!! flush() 保证数据不丢失
            bufferedWriter.flush();
            //强制清除

            bufferedWriter.close();
            fileWriter.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void read(String readPath) {
        try {
            FileReader reader = new FileReader(readPath);

            BufferedReader bufferedReader = new BufferedReader(reader);

            String result = "";

            //记录每行数据的内容
            String line = "";

            //readLine() 按行读取数据
            while((line= bufferedReader.readLine())!=null){

                result += line+'\n';
            }
            System.out.println(result);
            bufferedReader.close();
            reader.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

整合
public class ReaderAndWriter {
    public static void main(String[] args) {
        copy(“/Users/dllo/Desktop/地址","/Users/dllo/Desktop/新地址.txt");
    }

    private static void copy(String readPath,String writePath) {
        try {
            FileReader fileReader = new FileReader(readPath);
            BufferedReader bufferedReader = new                      BufferedReader(fileReader);
            FileWriter fileWriter = new FileWriter(writePath);
            BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
            String line = "";
            while ((line = bufferedReader.readLine())!=null){
                bufferedWriter.write(line);
                bufferedWriter.newLine();
                bufferedWriter.flush();
            }
            //循环里外都写flush() 保证数据不丢失
            bufferedWriter.flush();
            bufferedWriter.close();
            bufferedReader.close();
            fileWriter.close();
            fileReader.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

posted on 2018-07-19 22:34  楓与楪  阅读(141)  评论(0编辑  收藏  举报

导航