编程语言
首页 > 编程语言> > Java网络编程复习IO流

Java网络编程复习IO流

作者:互联网

Java 网络编程

网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。

1. 流的分类方式

(1)流向: 输入,输出流

(2)数据单位: 字节流,字符流

(3)流的角色: 节点流,处理流

2, IO流的抽象基类,文件流,缓冲流

InputStream, OutPutStream, Reader, Writer

FileInputStream, FileXXX...

 

BufferedInputStream, ...

 

 

 

3. 字节流和字符流的区别

字节流处理非文本文件,字符流处理文本文件

不走内存,复制文件,使用字节流,有中文的时候会出现乱码

字节流:read(byte [] buffer) / read() 

字符流:read(char [] cbuf) / read()

BufferedInputStream bis = null;
        BufferedOutputStream bos = null;
        try {
            bis= new BufferedInputStream(new FileInputStream(new File("C:\\Users\\Zir\\Pictures\\Camera Roll\\1.jpg")));
            bos = new BufferedOutputStream(new FileOutputStream(new File("D:\\soft\\1.jpg")));
            byte[] buffer = new byte[1024];

            Integer len;

            // 判断流中是否有数据
            while ((len=bis.read(buffer))!= -1){
                // 缓冲输出流写出,len做读取长度,读进去多少,从0开始写出去
                bos.write(buffer,0,len);
            }

            // 先关输出流,再关输入流
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                // 先开后关,后开先关
                bos.close();
                bis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

4. 转换流类型,作用。

(1)InputStreamReader: 将输入的字节流转换为输入的字符流,解码

(2)OutputStreamWriter: 将输出的字符流转换为输出的字节流,编码

// 解码,将文件以字节转字符的方式读入内存,文件以什么编码编的就要以什么解码
InputStreamReader isr = new InputStreamReader(new FileInputStream(new File("")), "UTF-8");

// 编码,将文件以字符转字节方式写出,自己定义编码方式
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(new File("")),"GBK");

 

标签:字符,Java,复习,read,len,IO,new,bis,字节
来源: https://www.cnblogs.com/aaawei/p/16474844.html