java.io在jdk中的定义:为系统提供输入和输出通过数据流,序列化以及文件系统。 在学习IO体系的时候,我们可以遵循这样的规律:看父类的共性功能,用子类的对象。 而且,IO体系的好处在于: 每个子类的后缀名都是所属体系的父类的名称,很容易区分所属的体系;而且每个子类前缀名都是该子类对象的功能体系。 Java IO体系: |--字节流抽象基类 |--OutputStream |--InputStream 常用的字节型的节点流有: 文件:FileInputStream,FileOutputStream 内存(数组):ByteArrayInputStream,ByteArrayOutputStream 管道:PipedInputStream,PipedOutputStream |--字符流抽象基类 |--Reader |--Writer 常用的字符型的节点流有: 文件:FileReader, FileWriter 内存(数组):CharArrayReader,CharArrayWriter 内存(字符串):StringReader,StringWriter 管道:PipedReader,PipedWriter 下面先讲解FileWriter 示例:将一段文字数据写入到硬盘上 1. import java.io.FileWriter; 2. import java.io.IOException; 3. 4. public class FileWriterDemo { 5. public static void main(String[] args) throws IOException { 6. 17. 18. 19. //1,通过FileWriter创建流对象。构造时,必须明确写入数据需要存储的位置。 20. 25. FileWriter fw = new FileWriter("demo.txt"); 26. 27. //2,使用字符输出流对象将字符串进行写入。调用写入方法。 28. //数据没有直接写入到目的文件中,而是写入到了临时缓冲中。 29. fw.write("abcdef"); 30. 31. //3,怎么把数据弄到文件中呢?发现Writer类中有一个flush()方法。刷新缓冲区,将缓冲的数据立即写入到目标中。 32. fw.flush(); 33. 34. fw.write("haha"); 35. //4,关闭此流,关闭资源。在关闭之前,先刷一次缓冲,将数据都写入到目的中。 36. fw.close(); 37. 38. 45. } 46. } 示例展示了FileWriter的基本流程,但是在程序中的很多地方都会发生异常,因此,有必要了解Java中IO体系的异常处理规范。 示例二:IO异常处理 1. import java.io.FileWriter; 2. import java.io.IOException; 3. public class FileWriterDemo3 { 4. 5. public static void main(String[] args) { 6. 10. FileWriter fw = null; 11. try { 12. fw = new FileWriter("k:\\demo3.txt"); 13. 14. fw.write("abcde"); 15. fw.flush(); 16. 17. } catch (IOException e) { 18. 19. System.out.println(e.toString()); 20. } finally { 21. //在关闭之间必须得判断这个流是否存在,是否被创建。 22. if (fw != null) 23. try { 24. fw.close(); 25. } catch (IOException e) { 26. 27. // 相关的代码处理。比如说,将关闭失败的信息记录到日志文件中。 28. throw new RuntimeException("关闭失败"); 29. } 30. } 31. } 32. }
|