IO流基本概念及使用方法

IO流概述

*  可以将这种数据传输操作,看做一种数据的流动 , 按照流动的方向分为输入Input和输出Output

*  Java中的IO操作主要指的是 java.io包下的一些常用类的使用. 通过这些常用类对数据进行读取(输入Input) 和 写出(输出Output)

*

* IO流的分类:

按照流的方向来分,可以分为:输入流和输出流.

按照流动的数据类型来分,可以分为:字节流和字符流

*

*     字节流:

*          -   输入流 :   InputStream

*          -   输出流 :   OutputStream

*     字符流:

*          -   输入流 :   Reader

*          -   输出流 :   Writer

*

*

* 一切皆字节:

*      计算机中的任何数据(文本,图片,视频,音乐等等)都是以二进制的形式存储的.

*      在数据传输时 也都是以二进制的形式存储的.

*      后续学习的任何流 , 在传输时底层都是二进制.

OutputStream

 public static void main(String[] args) throws IOException {
        //FileOutputStream
        //FileOutputStream构造方法中如果传入true会接着写
        FileOutputStream fos = new FileOutputStream("D://文件练习//2.txt");
        byte[] bytes2 = "ABCDEF".getBytes();
        fos.write(bytes2,2,2);
        //fos.write(bytes2);
        //fos.write(65);//写一个字符
        fos.close();                //写在哪在哪关闭
        System.out.println("已经写出");

    }

InputStream:

 public static void main(String[] args) throws IOException {
      
        //中文情况
        FileInputStream fis = new FileInputStream("D://文件练习//1.txt");  
        byte[] bytes = new byte[10];
        int len = fis.read(bytes);
        /**字节流读取文字容易读成半个字*/
        System.out.println(new String(bytes,0,len));
        len = fis.read(bytes);
        System.out.println(new String(bytes,0,len));
        len = fis.read(bytes);
        System.out.println(new String(bytes,0,len));
        fis.close();
        //没有东西就是-1
    }

Writer

 public static void main(String[] args) throws IOException {
        //writer
        FileWriter fw = new FileWriter("D://文件练习//3.txt",true);
        fw.write("天才少年");
        fw.close();

    }

Reader

 public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("D://文件练习//4.txt");          
        char[] chars = new char[100];
        int len = fr.read(chars);
        //fr.read(chars);
        System.out.println(new String(chars,0,len));
        System.out.println(new String(chars,0,len).length());
        fr.close();

    }

字节转字符

 public static void main(String[] args) throws IOException {
        //转换流  :将字节流转换成字符流     使用了装饰者模式
        FileInputStream fis = new FileInputStream("D://文件练习//5.txt");
        //将字节输入流转换为字符输入流  参数为要转换的字节流
        //注意编码字符表是否相同
        InputStreamReader isr = new InputStreamReader(fis,"UTF-8");
        while (true){
            int c = isr.read();
            if(c==-1){
                break;
            }
            System.out.println((char) c);
        }

    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值