1.流的分类
方向分类:输入流,输出流
数据单位分类:字节流,字符流
功能分类:节点流,处理流
2.以stream结尾的全式字节流,reader结尾时字符流
3. InputStream 的基本方法 ![]()
4.OutPutStream ![]()
5.节点流类型 ![]()
6.FileReader和FileWriter 一个字符一个字符读写数据,不带缓冲区
7.BufferInputStream和BufferOutputStream 带缓冲区的字节流,套接在字节流上
8.BufferWriter和BufferReader 带缓冲区的字符流,套接在字符流上 BufferWriter:有个很好用的方法,newLine() 重新另起一行 BufferReader:有个很好用的方法,raadLine() 读取一行数据
9.OutputStreamWriter和InputStreamReader 字符转换流,套接在字节流上,转换成字符流
10.OutputStreamWriter o = new OutputStreamWriter("d:/",true);这里的true代表是否在文件末尾追加数据,不设置则默认覆盖源文件
11.ByteArrayOutputStream out = new ByteArrayOutputStream();不需要设置路径,直接在内存开辟一块区域存储ByteArray 读取方法也有些不同,其他流都是连接到源数据上,这里则是连接到流上 [java] view plaincopyprint?
- ByteArrayIntputStream in = new ByteArrayIntputStream(out.toByteArray())
12.DataInputStream和DataOutputStream 因为目前为止的流只能读字节或是字符,对于一些Boolean,Long,Double进行读取的话可能造成空间浪费,DataInputStream则可以直接以源数据在内存的字节数进行相关读取,可用方法writeLong()和readLong()
13.printWriter和printStream打印流,只有输出流,没有输入流,不会抛异常,有自动flush() 功能 [java] view plaincopyprint?
- printStream ps = new printStream(new FileOutputStream("d:/"))
-
- System,setOut(ps);
原本System,out连接的是系统的输出诓,现在重新设置后,System,out.print()的内容将写在ps流指定的文件里
例子:FileInputStream [java] view plaincopyprint?
- import java.io.*;
- public class TestFileInputStream {
- public static void main(String[] args) {
- int b = 0;
- FileInputStream in = null;
- try {
- //将输入流连接到硬盘上的文件
- in = new FileInputStream("c:\\java\\TestFileInputStream.java");
- } catch (FileNotFoundException e) {
- System.out.println("找不到指定文件");
- System.exit(-1);
- }
-
- try {
- long num = 0;
- //通过输入流管道用read()方法读取字节流
- while((b=in.read())!=-1){
- System.out.print((char)b);
- num++;
- }
- in.close();
- System.out.println();
- System.out.println("共读取了 "+num+" 个字节");
- } catch (IOException e1) {
- System.out.println("文件读取错误"); System.exit(-1);
- }
- }
- }
|