JAVA IO(三)
2016-04-17 16:17
405 查看
java中IO分类
按照数据流向分:输入流—————-输出流
按照数据单位:字节流——————字符流
按照是否直接和数据源相连:节点流———处理流
一,字节流转换成字符流(转换流)
用InputStreamReader 输入字节流转换成输入字符流
用OutputStreamWriter输出字节流转换成输出字符流
2.按行读写
按字节(取一滴) —– 按字符(取一勺) —– 按行(取一桶)
(1). 以行为单位读写,比较方便
(2). 相当于缓冲区 缓冲区每次取一行
读一行:
使用的是 BufferedReader的readLine()方法
写一行:
使用的是 PrintWriter的println()方法
按行写也可以用BufferedWriter的write()方法换一行是newLine();
三,缓冲流
功能:减少和硬盘打交道次数 提高读写效率
字节流、字符流频繁和硬盘打交道 速度比较慢 效率低,可以使用缓冲提高效率。
带缓冲的流:
1.BufferedReader
2.BufferedWriter
3.PrintWriter
重点:缓冲区的内容写入到文件的三种情况:
1.调用BufferedWriter的flush()方法
2.缓冲流关闭 close();调用close()方式是系统缓冲的数据写到磁盘中
3.缓冲区满 ,默认缓冲区大小为16384个字节
实质char[] charArr = new char[8192];
按照数据流向分:输入流—————-输出流
按照数据单位:字节流——————字符流
按照是否直接和数据源相连:节点流———处理流
一,字节流转换成字符流(转换流)
用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];
相关文章推荐
- java之FileReader与FileWriter
- java文件的命名和类的执行
- java第四次作业(补)
- Java读取和写入CSV文件
- java面向对象三大特征之封装
- java 修改Excel表格的内容through poi
- JAVA 平台下的webservice
- java之FileInputStream与FileOutputStream
- Java基础--并发实用工具(3)
- 《day15---多线程安全问题_JDK1.5的锁机制》
- [疯狂Java]JDBC:事务管理、中间点、批量更新
- 第12章--Java集合之Map接口
- java 实现二叉树结构基本运算详细代码
- 关于Java堆栈存储数据的问题
- Java总结篇系列:Java泛型
- java约瑟夫环 -n围成一个圈,报数逢三退出 最后一个人初始号码
- Java内存溢出示例
- JAD java反编译工具(class反射工具)
- 第七届蓝桥杯java b组省赛第九题(取球博弈)
- spring webMVC配置