黑马程序员技术交流社区

标题: java基础持续更新-------IO(1) [打印本页]

作者: 青龙李坤    时间: 2015-6-17 22:40
标题: java基础持续更新-------IO(1)
java.iojdk中的定义:为系统提供输入和输出通过数据流,序列化以及文件系统。
在学习IO体系的时候,我们可以遵循这样的规律:看父类的共性功能,用子类的对象。
而且,IO体系的好处在于:
     每个子类的后缀名都是所属体系的父类的名称,很容易区分所属的体系;而且每个子类前缀名都是该子类对象的功能体系。
Java IO体系:
|--字节流抽象基类
    |--OutputStream
    |--InputStream
常用的字节型的节点流有:
文件:FileInputStreamFileOutputStream
内存(数组):ByteArrayInputStreamByteArrayOutputStream
管道:PipedInputStreamPipedOutputStream
|--字符流抽象基类
    |--Reader
    |--Writer
常用的字符型的节点流有:
文件:FileReader FileWriter
内存(数组):CharArrayReaderCharArrayWriter
内存(字符串):StringReaderStringWriter
管道:PipedReaderPipedWriter
下面先讲解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的基本流程,但是在程序中的很多地方都会发生异常,因此,有必要了解JavaIO体系的异常处理规范。
示例二: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