Java IO流继承体系及代码实现
作用:数据的传输
分类
字节流
InputStream
FileInputStream 文件流 能处理二进制文件也能处理文本
BufferedInputStream缓冲流 能处理二进制文件也能处理文本
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file1))
OutputStream
FileOutputStream 文件流 能处理二进制文件也能处理文本
BufferedOutputStream 缓冲流 能处理二进制文件也能处理文本
BufferedOutputStream bis=new BufferedOutputStream(new FileOutputStream(file2))
PrintStream
字符流
Reader
FileReader文件流 只能处理文本文件
BufferedReader 缓冲流 只能处理文本文件
BufferedReader br=new BufferedReader(new FileReader(name))
readLine()方法
Writer
FileWriter 文件流 只能处理文本文件
BufferedWriter 缓冲流 只能处理文本文件
PrintWriter 只能处理文本文件
PrintWriter pw=new PrintWriter(name)
println()方法
转换流(字节到字符)(构造方法第二个参数编码)
InputStreamReader 将InputStream转化为Reader
OutputStreamWriter OutputStream转化为Writer
二级制处理流
DataInputStream
DataOutputStresam
附几个代码实现
copy文件
[code] // 八、将一个压缩包如D:\a.rar从一个地方复制到另一个地方如C:\a.rar // 提示:如果涉及到多层级文件夹,则必须要保证目标文件夹的存在 // Java虽然可以自动创建不存在的文件,但是无法自动创建不存在的文件夹 public static void copyYaSuoB() { //应对输出路径上层目录作判断循环判断是否存在 String file1 = "F:" + File.separator + "音乐.rar"; String file2 = "F:" + File.separator + "音乐copy.rar"; File isfile1 = new File(file1); File isfile2 = new File("F:"); if (isfile1.exists() && isfile2.exists()) { BufferedInputStream bis = null; BufferedOutputStream bos = null; try { bis = new BufferedInputStream(new FileInputStream(file1)); bos = new BufferedOutputStream(new FileOutputStream(file2)); int read = -1; while ((read = bis.read()) != -1) { bos.write(read); } } catch (Exception e) { e.printStackTrace(); } finally { try { bos.close(); bis.close(); } catch (Exception e) { e.printStackTrace(); } } } }
写入文本
[code]// 九、将"内容One"、"内容Two"、"内容Three"3个字符串一行一个,写入D:\a.txt中 public static void writeTest() { String file1 = "F:" + File.separator + "a.txt"; PrintWriter pw = null; try { pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream( file1), "gbk")); pw.println("内容One"); pw.println("内容Two"); pw.println("内容Three"); } catch (Exception e) { e.printStackTrace(); } finally { pw.close(); } }
文本字符统计并输出到控制台
[code] /* * 十、一个文本文件中,每行一个单词 统计文件中每个单词出现的次数,并按出现的次数降序输出统计结果 如统计 input.txt amen * hello hello world 输出如下统计结果 单词hello出现了2次 单词amen出现了1次 单词world出现了1次 */ public static void countsWord() { Map<String, Integer> map = new HashMap<String, Integer>(); List<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>(); String name = "F:" + File.separator + "input.txt"; BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader(new FileInputStream( name), "gbk")); String line = null; while ((line = br.readLine()) != null) { if (!(map.containsKey(line))) { map.put(line, 1); } else { map.put(line, map.get(line) + 1); } } list.addAll(map.entrySet()); Collections.sort(list, new MyComparator()); for (Entry<String, Integer> e : list) { System.out.println("单词" + e.getKey() + "出现了" + e.getValue() + "次"); } } catch (Exception e) { e.printStackTrace(); } finally { try { br.close(); } catch (Exception e) { e.printStackTrace(); } } }
阅读更多
- 使用重载方式实现继承体系的代码重用
- 匿名内部类是否可以继承其它类?是否可以实现接口? 代码讲解
- js继承的实现代码
- Javascript简单实现面向对象编程继承实例代码
- Javascript简单实现面向对象编程继承实例代码
- 多继承与单继承实现代码复用
- List继承体系实现内幕和方法操作源码揭秘之Scala学习笔记-32
- JavaScript 继承实现代码
- (总结)C++中实现代码重用的手段----继承和聚合
- Scala 深入浅出实战经典 第41讲:List继承体系实现内幕和方法操作源码揭秘
- 代码文件objective c 中继承的实现
- 关于js的接口和 继承实现的代码例子
- 【代码重构 & JDT】判断一个方法是否是实现重写,继承重写和递归
- 线程:创建线程有两种方式,一种是继承Thread类,另一种是实现Runnable接口。代码如下:
- Qomolangma实现篇(五):Qomo的OOP的语法和类继承体系
- java子类继承父类实例-披萨的选择实现代码
- 纯作业代码——Java实现接口、继承
- 用类的继承关系实现简易后台代码模板
- backbone.js的类继承骨干代码qwrap实现
- 改进C#代码之22:通过定义并实现接口替代继承