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