JAVA IO(三)
来源:互联网 发布:mac 加速器 编辑:程序博客网 时间:2024/05/01 06:11
java中IO分类
按照数据流向分:输入流—————-输出流
按照数据单位:字节流——————字符流
按照是否直接和数据源相连:节点流———处理流
一,字节流转换成字符流(转换流)
用InputStreamReader 输入字节流转换成输入字符流
FileInputStream fis = new FileInputStream("aaa.txt");Reader reader=new BufferedReader(fis);
用OutputStreamWriter输出字节流转换成输出字符流
FileOutputStream fos=new FileOutputStream("bbb.txt");Writer writer=new OutputStreamWriter(fos);
public class TestChangStream { //输入 字节流--->字符流 public Reader inputStreamToReader(InputStream is){ Reader reader = null; reader = new InputStreamReader(is); return reader; } //输出 字节流--->字符流 public Writer outputStreamToWriter(OutputStream os){ Writer writer = null; writer = new OutputStreamWriter(os); return writer; }}
2.按行读写
按字节(取一滴) —– 按字符(取一勺) —– 按行(取一桶)
(1). 以行为单位读写,比较方便
(2). 相当于缓冲区 缓冲区每次取一行
读一行:
使用的是 BufferedReader的readLine()方法
写一行:
使用的是 PrintWriter的println()方法
按行写也可以用BufferedWriter的write()方法换一行是newLine();
public class TestBufferWritter { public static void main(String[] args) { // FileInputStream fis=null; FileReader fr = null; BufferedReader br = null; FileWriter fw = null; BufferedWriter bw = null; // PrintWriter pw = null; try { fr = new FileReader("F:\\Bluemix\\chapter13\\20160416.txt"); br = new BufferedReader(fr); } catch (FileNotFoundException e) { System.out.println("文件不存在"); e.printStackTrace(); } // 写 try { fw = new FileWriter("F:\\Bluemix\\chapter13\\222222222.txt"); // pw = new PrintWriter(fw); bw = new BufferedWriter(fw); String str = null; while ((str = br.readLine()) != null) { /*if (br.ready()) { pw.print(str); } else { pw.println(str); }*/ bw.write(str); bw.newLine(); } System.out.println("写入成功!"); } catch (IOException e) { System.out.println("写入失败"); e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { System.out.println("br关闭失败"); e.printStackTrace(); } } if (fr != null) { try { fr.close(); } catch (IOException e) { System.out.println("fr关闭失败"); e.printStackTrace(); } } if (bw != null) { try { bw.close(); } catch (IOException e) { System.out.println("bw关闭失败"); e.printStackTrace(); } } if (fw != null) { try { fw.close(); } catch (IOException e) { System.out.println("fw关闭失败"); e.printStackTrace(); } } } }}
三,缓冲流
功能:减少和硬盘打交道次数 提高读写效率
字节流、字符流频繁和硬盘打交道 速度比较慢 效率低,可以使用缓冲提高效率。
带缓冲的流:
1.BufferedReader
2.BufferedWriter
3.PrintWriter
重点:缓冲区的内容写入到文件的三种情况:
1.调用BufferedWriter的flush()方法
2.缓冲流关闭 close();调用close()方式是系统缓冲的数据写到磁盘中
3.缓冲区满 ,默认缓冲区大小为16384个字节
实质char[] charArr = new char[8192];
1 0
- java 图像IO (三)
- Java IO(三)
- JAVA IO(三)
- Java IO流(三)
- Java io 输入输出流(三)
- Java IO实战操作(三)
- Java当中的IO(三)
- Java当中的 IO (三)
- JAVA--IO流(三)
- Java IO(三) 之 FileInputStream
- JAVA的IO操作(三)
- Java IO(三):OutputStream
- Java IO学习笔记三
- Java之IO(三)
- Java IO核心操作(三)
- Java网络编程(三) java 流io和块io
- java IO-输入输出流(三)
- java io (三) InputStream OutputStream类
- Android Studio 2.0新特性之Instant Run
- JQuery绑定事件与移除事件、动画
- 慕课 springmvc 起步 maven wbe
- android聊天器(仿QQ)编写第一天__界面的搭建和主要的布局
- js 实现图片位置随意变化
- JAVA IO(三)
- 专题二:搜索总结报告
- BZOJ4524: [Cqoi2016]伪光滑数
- 通过NSURLSessionDownloadTask代理实现下载大文件
- 多线程编程之三个面试题
- MyBaits传递多个参数
- c++检测JAVA环境
- 约瑟夫环and同余方程组模板(exgcd求解同余方程组)
- echo写vbs下载者木马