Java网络编程复习IO流


Java 网络编程

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

1. 流的分类方式

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

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

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

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

InputStream, OutPutStream, Reader, Writer

FileInputStream, FileXXX…

Java网络编程复习IO流

 

BufferedInputStream, …

 Java网络编程复习IO流

 

 

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");

 

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/274124.html

(0)
上一篇 2022年7月13日
下一篇 2022年7月13日

相关推荐

发表回复

登录后才能评论