输入流和输出流

字节流和字符流区别
  1. 使用字节流操作非文本文件:.jpg, .mp3 , .mp4 , .doc , .ppt
  2. 文本文件:.txt .java .c .cpp ---》建议使用字符流操作
读取案例1(此处关闭流均已省略)
            fileReader = new FileReader(file1);
            fileWriter = new FileWriter(file);
            char[] chars1 = new char[5];
            int i = fileReader.read(chars1);
            while (i != -1) {
               /* String s1 = new String(chars1, 0, i);*/
                //将读出来的东西S1写到另一个文件夹中
                fileWriter.write(chars1,0,i);

                i = fileReader.read(chars1);
                /*String s = s1;
                char[] chars = s.toCharArray();
                fileWriter.write(chars);*/
读取案例2(此处关闭流均已省略)
      File file = new File("D://IDEA/Picture.jpg");
        File file2 = new File("D://IDEA/PictureCopy.jpg");
        //创建输出流和输入流写
        FileInputStream fileInputStream =new FileInputStream(file);//读
        FileOutputStream fileOutputStream = new FileOutputStream(file2);//写
        //创建缓存流
        byte []by = new byte[1024*8];
        //将读到的数据存入缓存流,返回个数
        int len = fileInputStream.read(by);
        while (len!=-1){
            fileOutputStream.write(by,0,len);
            len = fileInputStream.read(by);
        }
利用缓冲区,字节流
        package com.IO;
        import java.io.*;
        public class Buffinput {
            public static void main(String[] args) {
                //源文件,目标文件
                File file = new File("D://IDEA/Picture.jpg");
                File fileCopy = new File("D://IDEA/PictureType.jpg");
                //创建字节流
                BufferedInputStream buffinput = null;
                BufferedOutputStream buffOutput =null;
                try {
                
                    FileInputStream fileInputStream = new FileInputStream(file);
                    FileOutputStream fileOutputStream = new FileOutputStream(fileCopy);
                    //利用缓冲区:处理流BufferedInputStream;BufferedOutputStream
                     buffinput = new BufferedInputStream(fileInputStream);//默认缓存区大写8192
                     buffOutput =new BufferedOutputStream(fileOutputStream);
                    //利用缓冲数组:
                    byte []by = new byte[1028*6];
                    int len = buffinput.read(by);
                    while (len!=-1){
                        buffOutput.write(by,0,len);
                        len = buffinput.read(by);
                    }
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }finally {
                    try {
                        if (buffOutput != null) {
                            buffOutput.close();
                        }

                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    try {
                        if(buffinput!=null){
                            buffinput.close();
                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }

            }
        }

posted @ 2022-04-17 10:04  爱豆技术部  阅读(56)  评论(0)    收藏  举报