博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IO流--字节流和字符流
阅读量:4098 次
发布时间:2019-05-25

本文共 3040 字,大约阅读时间需要 10 分钟。

通过复制数据的案例,来讲解字节流和字符流的运用。
如果我们知道用记事本打开文本文件能够读懂,(不是乱码)就采用字符流,否则就用字节流。字节流有4种方式实现,推荐掌握第4种。

//一次读写一个字节
 private static void method1(File srcFile,File destFile) throws IOException {
  FileInputStream fis = new FileInputStream(srcFile);
  FileOutputStream fos = new FileOutputStream(destFile);
  
  int by;
  while((by = fis.read())!=-1) {
   fos.write(by);
  }
  fos.close();
  fis.close();
 }
//一次读写一个字节数组
  private static void method2(File srcFile,File destFile) throws IOException {
   FileInputStream fis = new FileInputStream(srcFile);
   FileOutputStream fos = new FileOutputStream(destFile);
   
   int len = 0;
   byte [] b = new byte[1024];
   while((len = fis.read(b))!=-1) {
    fos.write(b,0,len);
   }
   fos.close();
   fis.close();
  }
//字符缓冲流一次读写一个字节
  private static void method3(File srcFile,File destFile) throws IOException {
   BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
   BufferedOutputStream bos =new BufferedOutputStream(new FileOutputStream(destFile));
   
   int by;
   while((by = bis.read())!=-1) {
    bos.write(by);
   }
   bos.close();
   bis.close();
  }
//字符缓冲流一次读写一个字节数组
 private static void method4(File srcFile,File destFile) throws IOException {
  BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
  BufferedOutputStream bos =new BufferedOutputStream(new FileOutputStream(destFile));
  
  int len;
  byte [] b = new byte[1024];
  while((len = bis.read(b))!=-1) {
   bos.write(b,0,len);
  }
  bos.close();
  bis.close();
 }

字符流有5种方式实现,推荐掌握第5种
//基本字符流一次读写一个字符
 private static void method1(String srcString,String destString)
   throws IOException {
  FileReader fr = new FileReader(srcString);
  FileWriter fw = new FileWriter(destString);
  
  int ch;
  while((ch = fr.read())!=-1) {
   fw.write(ch);
  }
  fw.close();
  fr.close();
 }
//基本字符流一次读写一个字符数组
 private static void method2(String srcString,String destString)
   throws IOException {
  FileReader fr = new FileReader(srcString);
  FileWriter fw = new FileWriter(destString);
  
  int len;
  char [] c = new char[1024];
  while((len = fr.read(c))!=-1) {
   fw.write(c,0,len);
  }
  fw.close();
  fr.close();
 }
 //字符缓冲流一次读写一个字符
 private static void method3(String srcString,String destString)
   throws IOException {
  BufferedReader br = new BufferedReader(new FileReader(srcString));
  BufferedWriter bw = new BufferedWriter(new  FileWriter(destString)) ;
  
  int ch;
  while((ch = br.read())!=-1) {
   bw.write(ch);
  }
  bw.close();
  br.close();
 }
//字符缓冲流一次读写一个字符数组
 private static void method4(String srcString,String destString)
   throws IOException {
  BufferedReader br = new BufferedReader(new FileReader(srcString));
  BufferedWriter bw = new BufferedWriter(new  FileWriter(destString)) ;
  
  int len;
  char [] c = new char[1024];
  while((len = br.read(c))!=-1) {
   bw.write(c,0,len);
  }
  bw.close();
  br.close();
 }
//字符缓冲流一次读写一个字符串
 private static void method5(String srcString,String destString)
   throws IOException {
  BufferedReader br = new BufferedReader(new FileReader(srcString));
  BufferedWriter bw = new BufferedWriter(new  FileWriter(destString)) ;
  
  String line = null;
  while((line = br.readLine())!= null) {
   bw.write(line);
   bw.newLine();
   bw.flush();
  }
  bw.close();
  br.close();
 }

转载地址:http://ohrii.baihongyu.com/

你可能感兴趣的文章
shell 快捷键
查看>>
MODULE_DEVICE_TABLE的理解
查看>>
No devices detected. Fatal server error: no screens found
查看>>
db db2_monitorTool IBM Rational Performace Tester
查看>>
postgresql监控工具pgstatspack的安装及使用
查看>>
【JAVA数据结构】双向链表
查看>>
【JAVA数据结构】先进先出队列
查看>>
谈谈加密和混淆吧[转]
查看>>
乘法逆元
查看>>
Objective-C 基础入门(一)
查看>>
通过mavlink实现自主航线的过程笔记
查看>>
Flutter Boost的router管理
查看>>
Vue2.0全家桶仿腾讯课堂(移动端)
查看>>
React+Redux系列教程
查看>>
19 个 JavaScript 常用的简写技术
查看>>
iOS开发支付集成之微信支付
查看>>
浅谈JavaScript--声明提升
查看>>
React非嵌套组件通信
查看>>
Websocket 使用指南
查看>>
浏览器兼容性问题解决方案 · 总结
查看>>