A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何创 中级黑马   /  2012-10-23 23:45  /  1920 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

IO流知识总结:
IO流的概念:
   首先IO流用来处理设备之间的数据传输,是Java对数据的操作是通过流的方式,在使用IO流的时候需要带入IO包。
IO流的分类:
按操作数据分为两种:字节流与字符流。
按流向分为:输入流,输出流
字节流的基类是:InputStream OutputStream
字符流的基类:Reader Writer
一些IO流的规律:
InputStream的子类FileInputStream
Reader的子类FileReader
InputStream OutputStream,,  Reader  Writer。这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。后缀代表它的父类,而前缀代表它的功能。
例如:Fileinputstream Fileoutputstream  它们是操作文件的流。
再使用IO流的时候需要注意以下三个步骤; 1 导入IO包中的类进行 2 进行IO异常处理 3
finally中对流进行关闭
字符流操作;
FileWriter fw = new FileWriter(Test.txt);
fw.write(text);
fw.close();
对字符流异常的捕获处理:
FileWriter fw = null;
try{
fw = new FileWriter("Test.txt");
fw.write("text");
}
catch (IOException e){
System.out.println(e.toString());
}
finally{
If(fw!=null)
try{
fw.close();
}
catch (IOException e){
System.out.println(e.toString());
}
}
字符流的缓冲区:
BufferedWriter  BufferedReader
字符流缓冲区的意义和注意事项:
1 缓冲区的出现提高了对数据的读写效率
2缓冲区要结合流才可以使用
3在流的基础上对流的功能进行了增强
字节流操作;
这个和字符流大致相同,只是在这里用的是InputStream OutputStream
字节流缓冲区:BufferedInputStream
在字节流和字符流之间可以进行转换。
转换流:InputStreamReader    和  ,OutputStreamWriter
因为字节流和字符的异常捕获以及使用方法,基本是用一个道理,需要注意的就是它们之间的不同。
标准输入输出流 :
System类中的字段:inout
它们各代表了系统标准的输入和输出设备。
默认输入设备是键盘,输出设备是显示器。
System.in的类型是InputStream.
System.out的类型是PrintStreamOutputStream的子类FilterOutputStream 的子类.
标准输入输出流示例:
:获取键盘录入数据,然后将数据流向显示器,那么显示器就是目的地。
通过System类的setInsetOut方法对默认设备进行改变。
System.setIn(new FileInputStream(1.txt));//将源改成文件1.txt
System.setOut(new FileOutputStream(2.txt));//将目的改成文件2.txt
因为是字节流处理的是文本数据,可以转换成字符流,操作更方便。
BfferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw =  new BufferedWriter(new OutputStreamWriter(System.out));
IO包中的其他类:
1 管道流     PipedInputStreamPipedOutputStream
2 打印流   PrintWriterPrintStream
3序列流    SequenceInputStream
4 操作对象  ObjectInputStreamObjectOutputStream
流的基本总结:
流是用来处理数据的。
处理数据时,一定要先明确数据源,与数据目的地(数据汇)。
数据源可以是文件,可以是键盘。
数据目的地可以是文件、显示器或者其他设备。
而流只是在帮助数据进行传输,并对传输的数据进行处理,比如过滤处理.转换处理等。

3 个回复

倒序浏览
这可得拿走。 资源啊。  谢谢
回复 使用道具 举报
给生活加点料 发表于 2012-10-23 23:57
这可得拿走。 资源啊。  谢谢

呵呵,互相帮助,互相学习:)。
回复 使用道具 举报
向文件里写内容后要调用flush()方法将缓冲区里的内容清空,也就是全部写到文件
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马