IO 读写数据

字节流://图片数据,复制文件

输入字节流:
---------| InputStream 所有输入字节流的基类  抽象类
------------| FileInputStream 读取文件的输入字节流
------------| BufferedInputStream 缓冲输入字节流,提高读取文件数据的效率,byte[] buffer=new byte[1024*8];

输出字节流:
---------| OutputStream  所有输出字节流的基类。  抽象类
------------| FileOutputStream 向文件输出数据 的输出字节流
------------| BufferedOutputStream  缓冲输出字节流


字符流://读写的都是字符数据 字符流 = 字节流 + 编码(解码)

输入字符流
--------| Reader 所有输入字符流的基类。 抽象类
-----------| FileReader 读取文件字符的输入字符流
-----------| BufferedReader 缓冲输入字符流,提高写文件字符的效率,readLine()
输出字符流
-------| Writer 所有输出字符流的基类  抽象类
------------| FileWriter 向文件输出字符数据的输出字符流
------------| BufferedWriter 缓冲输出字符流,提高写文件字符的效率,newLine()


转换流:
输入字节流的转换流  
    InputSrteamReader //字节字符
输出字节流的转换流
    OutputStreamWriter
转换流的作用:
    1. 可以把对应的字节流转换成字符流使用。
    2. 可以指定码表进行读写文件的数据。

 public static void writeFile() throws Exception{
        FileOutputStream out=new FileOutputStream("C:/Users/Mr.L/EclipseWorkSpace/dayTest/src/com/mrl/io/a.txt");
        OutputStreamWriter outPutStreamWriter=new OutputStreamWriter(out,"UTF-8");
        outPutStreamWriter.write("你好吗?");//utf-8下,一个中文字符占三个字节
        outPutStreamWriter.close();
    }
    public static void readFile() throws Exception{
        /*FileInputStream in=new FileInputStream("C:/Users/Mr.L/EclipseWorkSpace/dayTest/src/com/mrl/io/a.txt");
        InputStreamReader inputStreamReader=new InputStreamReader(in,"UTF-8");
        int content=0;
        while((content=inputStreamReader.read())!= -1){
            System.out.print((char)content);
        }
        inputStreamReader.close();
        */
        FileReader fileReader=new FileReader("C:/Users/Mr.L/EclipseWorkSpace/dayTest/src/com/mrl/io/demo.java");
        int content=0;                    
        while((content=fileReader.read())!= -1){//jdk1.8 未出现中文乱码情况
            System.out.print((char)content);
        }
        fileReader.close();
    }
    public static void testInput() throws Exception{
        InputStream in=System.in;
        InputStreamReader inputStreamReader=new InputStreamReader(in);
        BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
        System.out.println(bufferedReader.readLine());
    }
    public static void testOutput() throws Exception{
        Socket socket = new Socket(InetAddress.getLocalHost(),9090);
        OutputStream outPutStream=socket.getOutputStream();
        OutputStreamWriter outputStreamWriter=new OutputStreamWriter(outPutStream);
        outputStreamWriter.write("你好");
        socket.close();
    }

转载于:https://my.oschina.net/k2easy/blog/537335

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值