黑马程序员--IO流基础
2015-10-25 12:33
357 查看
IO(Input Output)流
.
IO流用来处理设备之间的数据传输
.
Java对数据的操作是通过流的方式
.
Java用于操作流的对象都在IO包中
.
流按操作数据分为两种:字节流与字符流。
.
流按流向分为:输入流,输出流。
IO流常用基类
字节流的抽象基类:
. InputStream ,OutputStream。
.
字符流的抽象基类:
. Reader ,Writer。
.
注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
. 如:InputStream的子类FileInputStream。
. 如:Reader的子类FileReader。
IO程序的书写
.
导入IO包中的类
.
进行IO异常处理
.
在finally中对流进行关闭
字符流——创建文件
创建流对象,建立数据存放文件
. FileWriter fw = new FileWriter(“Test.txt”);
调用流对象的写入方法,将数据写入流
. fw.write(“text”);
关闭流资源,并将流中的数据清空到文件中。
. fw.close();
字符流——读取文件
.
建立一个流对象,将已存在的
4000
一个文件加载进
流。
FileReader fr = new FileReader(“Test.txt”);
.
创建一个临时存放数据的数组。
char[] ch = new char[1024];
.
调用流对象的读取方法将流中的数据读入到数组
中。
fr.read(ch);
System.out.println("close-Exception:"+e.toString());
}
注意:
.
定义文件路径时,可以用“/”或者“\\”。
.
在创建一个文件时,如果目录下有同名文件将被覆盖。
.
在读取文件时,必须保证该文件已存在,否则出异常。
字符流的缓冲区
缓冲区的出现提高了对数据的读写效率。
.
对应类
. BufferedWriter
. BufferedReader
.
缓冲区要结合流才可以使用。
.
在流的基础上对流的功能进行了增强。
装饰设计模式
对原有类进行了功能的改变,增强。
.
装饰模式的基本格式。
.
它与继承有什么不同?
.
了解BufferedReader的原理。
字节流
.
基本操作与字符流类相同
.
但它不仅可以操作字符,还可以操作其他媒体文件
字节流的缓冲区
同样是提高了字节流的读写效率。
转换流
.
InputStreamReader,OutputStreamWriter
.
转换流的由来
. 字符流与字节流之间的桥梁
. 方便了字符流与字节流之间的操作
.
转换流的应用
. 字节流中的数据都是字符时,转成字符流操作更高效。
标准输入输出流
.
System类中的字段:in,out。
.
它们各代表了系统标准的输入和输出设备。
.
默认输入设备是键盘,输出设备是显示器。
.
System.in的类型是InputStream.
.
System.out的类型是PrintStream是
OutputStream的子类FilterOutputStream 的子类.
标准输入输出流示例
.
例:获取键盘录入数据,然后将数据流向显示器,那么显示器就是目
的地。
.
通过System类的setIn,setOut方法对默认设备进行改变。
. 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包中的其他类
.
RandomAccessFile
. 随机访问文件,自身具备读写的方法.通过skipBytes(int x),seek(int x)来达到随机访问。
管道流
. PipedInputStream和PipedOutputStream输入输出可以直接进行连接,通过结合线程使用。
打印流
PrintWriter与PrintStream可以直接操作输入流和文件。
序列流
SequenceInputStream对多个流进行合并。
.
操作对象
ObjectInputStream与ObjectOutputStream被操作的对象需要实现Serializable (标记接口);
操作基本数据类型 DataInputStream与DataOutputStream
操作字节数组 ByteArrayInputStream与ByteArrayOutputStream
操作字符数组CharArrayReader与CharArrayWrite
操作字符串StringReader 与StringWriter
.
IO流用来处理设备之间的数据传输
.
Java对数据的操作是通过流的方式
.
Java用于操作流的对象都在IO包中
.
流按操作数据分为两种:字节流与字符流。
.
流按流向分为:输入流,输出流。
IO流常用基类
字节流的抽象基类:
. InputStream ,OutputStream。
.
字符流的抽象基类:
. Reader ,Writer。
.
注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
. 如:InputStream的子类FileInputStream。
. 如:Reader的子类FileReader。
IO程序的书写
.
导入IO包中的类
.
进行IO异常处理
.
在finally中对流进行关闭
字符流——创建文件
创建流对象,建立数据存放文件
. FileWriter fw = new FileWriter(“Test.txt”);
调用流对象的写入方法,将数据写入流
. fw.write(“text”);
关闭流资源,并将流中的数据清空到文件中。
. fw.close();
字符流——读取文件
.
建立一个流对象,将已存在的
4000
一个文件加载进
流。
FileReader fr = new FileReader(“Test.txt”);
.
创建一个临时存放数据的数组。
char[] ch = new char[1024];
.
调用流对象的读取方法将流中的数据读入到数组
中。
fr.read(ch);
System.out.println("close-Exception:"+e.toString());
}
注意:
.
定义文件路径时,可以用“/”或者“\\”。
.
在创建一个文件时,如果目录下有同名文件将被覆盖。
.
在读取文件时,必须保证该文件已存在,否则出异常。
字符流的缓冲区
缓冲区的出现提高了对数据的读写效率。
.
对应类
. BufferedWriter
. BufferedReader
.
缓冲区要结合流才可以使用。
.
在流的基础上对流的功能进行了增强。
装饰设计模式
对原有类进行了功能的改变,增强。
.
装饰模式的基本格式。
.
它与继承有什么不同?
.
了解BufferedReader的原理。
字节流
.
基本操作与字符流类相同
.
但它不仅可以操作字符,还可以操作其他媒体文件
字节流的缓冲区
同样是提高了字节流的读写效率。
转换流
.
InputStreamReader,OutputStreamWriter
.
转换流的由来
. 字符流与字节流之间的桥梁
. 方便了字符流与字节流之间的操作
.
转换流的应用
. 字节流中的数据都是字符时,转成字符流操作更高效。
标准输入输出流
.
System类中的字段:in,out。
.
它们各代表了系统标准的输入和输出设备。
.
默认输入设备是键盘,输出设备是显示器。
.
System.in的类型是InputStream.
.
System.out的类型是PrintStream是
OutputStream的子类FilterOutputStream 的子类.
标准输入输出流示例
.
例:获取键盘录入数据,然后将数据流向显示器,那么显示器就是目
的地。
.
通过System类的setIn,setOut方法对默认设备进行改变。
. 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包中的其他类
.
RandomAccessFile
. 随机访问文件,自身具备读写的方法.通过skipBytes(int x),seek(int x)来达到随机访问。
管道流
. PipedInputStream和PipedOutputStream输入输出可以直接进行连接,通过结合线程使用。
打印流
PrintWriter与PrintStream可以直接操作输入流和文件。
序列流
SequenceInputStream对多个流进行合并。
.
操作对象
ObjectInputStream与ObjectOutputStream被操作的对象需要实现Serializable (标记接口);
操作基本数据类型 DataInputStream与DataOutputStream
操作字节数组 ByteArrayInputStream与ByteArrayOutputStream
操作字符数组CharArrayReader与CharArrayWrite
操作字符串StringReader 与StringWriter
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统