看了别个的帖子,自己精简的记一下。以备查看
原帖
http://blog.csdn.net/zxman660/article/details/7875799
首先,在JAVA API中,可以从其中读入一个字符序列的对象称作输入流,而可以从中写入一个字符序列的对象称作输出流。
操作流程
在Java中IO操作也是有相应步骤的,以文件操作为例,主要的操作流程如下:
1 使用File类打开一个文件
2 通过字节流或字符流的子类,指定输出的位置
3 进行读/写操作
4 关闭输入/输出
IO操作属于资源操作,一定要记得关闭
File f = new File("d:" + File.separator+"test.txt"); //1 使用File类打开一个文件 OutputStream out=new FileOutputStream(f);//如果文件不存在会自动创建 // 2 通过字节流或字符流的子类,指定输出的位置 String str="Hello World"; byte[] b=str.getBytes(); out.write(b);//因为是字节流,所以要转化成字节数组进行输出 // 3 进行读/写操作 out.close(); // 4 关闭输入/输出
File f = new File("d:" + File.separator+"test.txt"); //1 使用File类打开一个文件 Writer out=new FileWriter(f); //2 通过字节流或字符流的子类,指定输出的位置 String str="Hello World"; out.write(str); //3 进行读/写操作 out.close(); // 4 关闭输入/输出
在Java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成。(这四个都是抽象类)
java中提供了专用于输入输出功能的包Java.io,其中包括:
InputStream,OutputStream,Reader,Writer
InputStream 和OutputStream,两个是为字节流设计的,主要用来处理字节或二进制对象,
Reader和 Writer.两个是为字符流(一个字符占两个字节)设计的,主要用来处理字符或字符串.
字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点