IOの利用字节流和字符流完成文件的复制demo
2016-05-25 12:16
393 查看
package IO; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import org.junit.Test; //完成字符流和字节流的输入输出 public class TestExer { // 字符流利用程序复制 @Test public void test4() { BufferedReader bufferedReader = null; BufferedWriter bufferedWriter = null; try { bufferedReader = new BufferedReader(new FileReader("test1.txt")); bufferedWriter = new BufferedWriter(new FileWriter("hadi.txt")); char[] c = new char[20]; int len; while ((len = bufferedReader.read(c)) != -1) { bufferedWriter.write(c, 0, len); } bufferedWriter.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (bufferedWriter != null) { try { bufferedWriter.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (bufferedReader != null) { try { bufferedReader.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } // 使用字符流实现内容的读入 @Test public void test3() { BufferedReader bufferedReader = null; try { bufferedReader = new BufferedReader(new FileReader("test.txt")); String string; while ((string = bufferedReader.readLine()) != null) { System.out.println(string); } } catch (IOException e) { e.printStackTrace(); } finally { if (bufferedReader != null) { try { bufferedReader.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } // 使用字符流实现内容输出 @Test public void test2() { BufferedWriter bufferedWriter = null; try { bufferedWriter = new BufferedWriter(new FileWriter(new File("test1.txt"))); // 可以直接写成这个:bufferedWriter = new BufferedWriter(new // FileWriter("test1.txt")); String string = "转换流:实现字节流与字符流之间的转换InputStreamReader输入时,\n" + "实现字节流到字符流的转换,提高操作的效率(前提是,数据是文本文件)\n" + "===>解码:从字节数组到字符串(相对于人能看懂了,所以叫解释了,解码)\n" + " ===>编码:从字符流到字节流(相对于人把文字变成了数字,看不懂了,叫编码)\n" + "OutputStreamWriter:输出时,实现字符流到字节流的转换。从看得懂到看不懂,\n" + "在底层用0101存储。 ===>编码:从字符流到字节流(相对于人把文字变成了数字,看不懂了,叫编码)\n" + "System.in:标准输入流:从键盘输入数据System.out:标准输出流:从显示器输出数据\n"; bufferedWriter.write(string); bufferedWriter.flush(); } catch (IOException e) { e.printStackTrace(); } finally { if (bufferedWriter != null) { try { bufferedWriter.close(); } catch (IOException e) { e.printStackTrace(); } } } } // 使用字节流实现内容的输出 @Test public void test1() { // 处理流缓冲流的创建 BufferedOutputStream bufferedOutputStream = null; try { bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(new File("test.txt"))); String string = "转换流:实现字节流与字符流之间的转换InputStreamReader输入时,\n" + "实现字节流到字符流的转换,提高操作的效率(前提是,数据是文本文件)\n" + "===>解码:从字节数组到字符串(相对于人能看懂了,所以叫解释了,解码)\n" + " ===>编码:从字符流到字节流(相对于人把文字变成了数字,看不懂了,叫编码)\n" + "OutputStreamWriter:输出时,实现字符流到字节流的转换。从看得懂到看不懂,\n" + "在底层用0101存储。 ===>编码:从字符流到字节流(相对于人把文字变成了数字,看不懂了,叫编码)\n" + "System.in:标准输入流:从键盘输入数据System.out:标准输出流:从显示器输出数据\n"; // 将一个字符串转化成字节数组,并写出到文件 bufferedOutputStream.write(string.getBytes()); } catch (IOException e1) { e1.printStackTrace(); } finally { if (bufferedOutputStream != null) { // 关闭缓冲流,就会关闭相应的字节流 try { bufferedOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
相关文章推荐
- ACM 技巧
- 浅谈浏览器http的缓存机制
- etcd+calico集群的部署
- 在 Linux 平台及 IPv4 环境中构建 IPv6 测试环境
- git常用命令总结
- IOの概述
- Shiro快速入门
- 关于CPU Cache -- 程序猿需要知道的那些事
- PaaS 平台的网络需求
- selectI实现I/O复用
- 当Apache Shiro遇上MultipartHttpServletRequest
- Restful 最佳实践
- C 笔记
- C语言 链表的创建--打印--逆置--新增--删除--排序--释放
- Java线程终止状态
- Shiro快速入门
- canvas图像滤镜---canvas getImageData() 方法
- 带你使用Nginx实现HTTPS双向验证
- [Win10]安装msi时2503,2502错误及其解决
- 1022. Digital Library (30)