Java IO流
1、IO流分类
1)按数据流向:输入流和输出流
2)按处理单位:字节流和字符流
3)按功能分类:节点流和处理流
2、常用的流
1)对文件进行操作:FileInputStream(字节输入流)、FileOutputStream(字节输出流)、FileReader(字符输入流)、FileWriter(字符输出流)
2)对管道进行操作:PipedInputStream(字节输入流)、PipedOutStream(字节输出流)、PipedReader(字符输入流)、PipedWriter(字符输出流)
3)字节/字符数组:ByteArrayInputStream、ByteArrayOutputStream、CharArrayReader、CharArrayWriter
4)Buffered 缓冲流:BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter
5)字节转化成字符流:InputStreamReader、OutputStreamWriter
6)数据流:DataInputStream、DataOutputStream
7)打印流:PrintStream、PrintWriter
8)对象流:ObjectInputStream、ObjectOutputStream
9)序列化流:SequenceInputStream
3、读取文件a.txt中的第10个字节
1 FileInputStream in = new FileInputStream("a.txt"); 2 3 in.skip(9);//skip(long n) 方法,调过文件 n 个字节数 4 5 int b = in.read();
4、JDK中 java.io.ByteArrayOutputStream可以通过流写入数据到内存
5、输入流和输出流的区别
1)输入输出的方向是针对程序而言,向程序中读入数据,就是输入流;从程序中向外写存储数据,就是输出流
2)从磁盘、网络、键盘读到内存,就是输入流,用InputStream或Reader
3)写到磁盘、网络、屏幕,都是输出流,用OutputStream或Writer
6、常用字节输入流和输出流
1)FileInputStream-FileOutputStream 文件数据读写
2)ObjectInputStream-ObjectOutputStream 对象数据读写
3)ByteArrayInputStream-ByteArrayOutputStream 内存字节数组读写
4)PipedInputStream-PipedOutputStream 管道输入输出
5)FilterInputStream-FilterOutputStream 过滤输入输出数据流
6)InputStreamReader-OutputStreamWriter 字节流转字符流
7)FileReader-FileWriter 文件字符输入输出流
8)BufferedReader-BufferedWriter 带缓冲的字符输入输出流
7、节点流和处理流的区别
1)节点流:可以从某个节点读取数据或向某节点写数据的流
2)处理流:对已存在的流的连接和封装,实现更为丰富的流数据处理,处理流的构造方法必须需要其他的流对象参数
8、缓冲流
1)不带缓冲的流读取到一个字节或字符,就直接写出数据
2)带缓冲的流读取到一个字节或字符,先不输出,等达到了缓冲区的最大容量再一次性写出去
优点:减少了写出次数,提高了效率
缺点:接收端可能无法及时获取到数据
标签:字符,Java,字节,输出,输入输出,IO,FileInputStream,输入 From: https://www.cnblogs.com/it-java-ls/p/17064634.html