标签:
Java的IO流是实现输入/输出的基础,它可以方便地实现数据的输入\输出操作,在Java中把不同的输入\输出源抽象为"流",通过流的方式允许Java程序使用相同的方式来访问不同的输入/输出源。stream是从起源(source)到接收(sink)的有序数据。
Java把所有传统的流类型(类或抽象类)都放在java.io包中,用以实现输入\输出功能。
JavaAPI 1.6中java.io包
1.子节流
* 输入字节流
* -------------|InputStream 所有输入字节流的基类,抽象类
* -----------------|FileInputStream 读取文件的输入字节流。
* ----------------|BufferedInputStream 缓冲输入字节流。该类内部其实就是维护了一个8Kb字节数组。该类的出现的买的就是提高读取文件数据的效率。
* 输出字节流
* -------------OutputStream 所有输出字节流的基类,抽象类
* -----------------|FileInputStream 写入文件的输出字节流
* -----------------|BUfferedOutputStream 缓冲写入字节流。该类的内部同样维护了一个8kb的字节数组。提高文件写入效率。
*
2.字符流
* 字符流 = 字节流 + 编码
* 输入字符流
* ------------|Reader 所有输入字符流的基类,抽象类
* ----------------|FileReader 读取文件字符的输入字符流
* ----------------|BufferedReader 缓冲输入字符流。该类的内部同样维护一个8192长度的字符数组.
* 输出字符流
* ------------|Writer 所有输出字符流的基类,抽象类
* ----------------|FileWriter 写入文件字符的是输出字符流
* ----------------|BufferedWriter 缓冲输出字符流。该类的内部同样维护一个8192长度的字符数组。
*
3. 转换流:
*输入转换流的基类InputStreamReader
*输出转换流的基类OutputStreamWriter
*转换流的作用:可以将对应的字节流转换成字符流使用;可以指定码表进行文件的数据.
4.一个实例,移动文件
1 public static void copy(String src, String desc) throws Exception { 2 3 File srcFile = new File(src); 4 File descFile = new File(desc); 5 InputStream in = null; 6 OutputStream out = null; 7 try { 8 in = new FileInputStream(srcFile); 9 out = new FileOutputStream(descFile); 10 int len = -1; 11 byte[] bytes = new byte[1024 * 1024]; 12 while ((len = in.read(bytes)) != -1) { 13 out.write(bytes, 0, len); 14 } 15 } catch (FileNotFoundException e) { 16 e.printStackTrace(); 17 } catch (IOException e) { 18 e.printStackTrace(); 19 } finally { 20 in.close(); 21 out.close(); 22 } 23 24 } 25 }
2016-05-10 gongchao1212
标签:
原文地址:http://www.cnblogs.com/vegetable/p/5479808.html