黑马程序员技术交流社区
标题: java基础持续更新-------IO(1) [打印本页]
作者: 青龙李坤 时间: 2015-6-17 22:40
标题: java基础持续更新-------IO(1)
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. }
作者: 青龙李坤 时间: 2015-6-17 22:41
要想发展好,IO必学好!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |