java 常用IO流的分类以及代码实现

IO流是一种数据流,把数据读入内存以及写出内存的过程中就需要通过流的方式来进行。


IO流的分类

根据IO流的方向:输入流和输出流
根据IO流的单位:字节流和字符流
根据IO流的角色:节点流和缓冲流

在这里插入图片描述
常用IO流:

节点流缓冲流
字节流FileInputStream、FileOutputStreamBufferedInputStream、BufferedOutputStream
字符流FileReader、FileWriterBufferedReader、BufferedWriter

字符流、字节流之间的转换:InputStreamReader、OutputStreamWriter

字节流:FileInputStream、FileOutputStream

		File file=new File("hello.txt");
        if(!file.exists()) file.createNewFile();

        File file1=new File("demo.txt");
        if(!file1.exists()) file1.createNewFile();


        FileInputStream fileInputStream=new FileInputStream(file);
        FileOutputStream fileOutputStream=new FileOutputStream(file1);

        byte[] bytes=new byte[1024];
        
        int len;
        while ((len=fileInputStream.read(bytes))!=-1){

            String string=new String(bytes,0,len );

            fileOutputStream.write(bytes,0,len);

            System.out.println(string);

        }

        fileInputStream.close();

        fileOutputStream.close();

字符流:FileReader、FileWriter

        File file=new File("hello.txt");
        if(!file.exists()) file.createNewFile();

        File file1=new File("demo.txt");
        if(!file1.exists()) file1.createNewFile();

        FileReader fileReader=new FileReader(file);

        FileWriter fileWriter=new FileWriter(file1,true);


        char[] chars=new char[1024];
        int len;
        while ((len=fileReader.read(chars))!=-1){

            System.out.println(new String(chars, 0, len));
            fileWriter.write(chars,0,len);

        }
        fileReader.close();
        fileWriter.close();

缓冲流:(1)BufferedReader、BufferedWriter

        File file=new File("hello.txt");
        if(!file.exists()) file.createNewFile();

        File file1=new File("demo.txt");
        if(!file1.exists()) file1.createNewFile();

        FileReader fileReader=new FileReader(file);
        FileWriter fileWriter=new FileWriter(file1,true);

        BufferedReader bufferedReader=new BufferedReader(fileReader);
        BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);

        String readLine;
        while ((readLine=bufferedReader.readLine())!=null){
            bufferedWriter.write(readLine);
            System.out.println(readLine);
        }

        bufferedReader.close();
        bufferedWriter.close();

(2)BufferedInputStream、BufferedOutputStream

File file=new File("hello.txt");
        if(!file.exists()) file.createNewFile();

        File file1=new File("demo.txt");
        if(!file1.exists()) file1.createNewFile();

        FileInputStream fileInputStream=new FileInputStream(file);
        FileOutputStream fileOutputStream=new FileOutputStream(file1);

        BufferedInputStream bufferedInputStream=new BufferedInputStream(fileInputStream);
        BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(fileOutputStream);

        byte[] bytes=new byte[1024];

        int len;
        while ((len=bufferedInputStream.read(bytes))!=-1){
            bufferedOutputStream.write(bytes,0,len);
            System.out.println(new String(bytes,0,len));
        }
        bufferedInputStream.close();
        bufferedOutputStream.close();

字符流、字节流之间的转换:InputStreamReader、OutputStreamWriter

		FileInputStream fileInputStream=new FileInputStream(new File("demo.txt"));
        FileOutputStream fileOutputStream=new FileOutputStream(new File("hello.txt"));

        BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(fileInputStream));

        BufferedWriter bufferedWriter=new BufferedWriter(new OutputStreamWriter(fileOutputStream));

        char[] chars =new char[1024];
        int len;

        while ((len=bufferedReader.read(chars))!=-1){
            bufferedWriter.write(chars,0,len);
            System.out.println(new String(chars,0,len));
        }

        bufferedReader.close();
        bufferedWriter.close();
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值