----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
这几天在学IO流,今天在这里做一个总结
四个基类流对象
输入流:InputStream 和 Reader //都是抽象类,本身不能创建实例
|------->FileInputStream 和 FileReader //用与读取文件的输入流,执行输入
FileInputStream fis=new FileInputStream("FileInputStreamTest.java");//创建字节输入流,读取的文件是FileInputStreamTest.java
byte[] bbuf=new byte[1024]; //创建一个长度为1024的"竹筒",相当于缓存区
int hasRead=0; //用于保存实际读取得字节数
while((hasRead=fis.read(bbuf))!=-1) //重复"取水"过程,读到文件尾为-1
{
System.out.println(new String(bbuf,0,hasRead));//取出"竹筒"中的水滴(字节),将字节数组转换成字符串输出
}
fis.close();
FileReader fr=new FileReader("FileReaderTest.java");//创建字节输入流,读取的文件是FileInputStreamTest.java
char[] cbuf=new char[1024]; //创建一个长度为1024的"竹筒",相当于缓存区
......
输出流:OutputStream和 Writer
|------->FileOutputStream 和 FileWriter //用与写入到文件的输出流,执行输出
FileInputStream fis=new FileInputStream("FileInputStreamTest.java");//创建字节输入流,读取的文件是FileInputStreamTest.java
FileOutputStream fis=new FileOutputStream("FileInputStreamTest_Copy.txt");//创建字节输出流,写入到的文件是FileInputStreamTest_Copy.txt
byte[] bbuf=new byte[1024]; //创建一个长度为1024的"竹筒",相当于缓存区
int hasRead=0; //用于保存实际读取得字节数
while((hasRead=fis.read(bbuf))!=-1) //重复"取水"过程,读到文件尾为-1
{
fos.write(bbuf,0,hasRead); //每读取一次,即写入文件输出流
}
fis.close(); //关闭流资源
字节流:InputStream 和 OutputStream //操作的最小数据单位是8位的字节
字符流:Reader 和 Writer //操作的最小数据单位是16位的字符
我们发现其实IO流是很有规律:
现在付上一个表,将基本的IO流对象列出来:
分类 | 字节输入流 | 字节输出流 | 字符输入流 | 字符输出流 |
抽象基类 | InputStream | OutputStream | Reader | Writer |
访问文件 | FileInputStream | FileOutputStream | FileReader | FileWriter |
访问数组 | ByteArrayInputStream | ByteArrayOutputStream | CharArrayReader | CharArrayWriter |
访问管道 | PipedInputStream | PipedOutputStream | PipedReader | PipedWriter |
访问字符串 |
|
| StringReader | StringWriter |
缓冲流 | BufferedInputStream | BufferedOutputputStream | BufferedReader | BufferedWriter |
转换流 |
|
| InputStreamReader | OutputStreamWriter |
对象流 | ObjectInputStream | ObjectOutputStream |
|
|
抽象基类 | FilterInputStream | FilterOutputStream | FilterReader | FilterWriter |
打印流 |
| PrintStream |
| PrintWriter |
推回输入流 | PushbackInputStream |
| PushbackReader |
|
特殊流 | DataInputStream | DataOutputStream |
|
|
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------