输入/输出流和文件操作
2015-09-10 18:50
507 查看
一、流的概念
流:对数据操作的对象。
根据流的方向。分类:输入流和输出流。
输入流读取数据,但是不能写入数据。输出流只能写入数据,不能读取数据。
根据处理数据类型不同。分类:字节流和字符流。
字节流以字节为基本单位进行处理,也称为原始数据,适合7 位ASCII码操作;而字符流以字符为基本单位进行处理,用2字节的Unicode作为编码。
二、字节流(InputStream和OutputStream类)
InputStream是所有字节输入流的父类;OutputStream是所有字节输出流的父类。
1、InputStream类(输入流)
(1)InputStream有5个低级输入流
ByteArrayInputStream 从内存数组中读取数据字节
FileInputStream 从本地文件系统中读取数据字节
PipedInputStream 从线程管道中读取数据字节
StringBufferInputStream 从字符串中读取数据字节
SequenceInputStream 将多个InputStream合并为一个
(2)除了构造方法外,InputStream中所提供的方法如下:
int read(); //读取数据
close();
//关闭流
void mark(); //标记流
void reset(); //重置流
2、OutputStream类(输出流)
(1)输出数据的方法如下:
void write();/写入数据
flush()l
//刷新流
close();
//关闭流
字节流操作图片,代码如下:
三、字符流(Write和Reader类)
1、Write类
(1)向输出流写入字符
void writer();
(2)刷新输出流,并且输出所有被缓存的字节。
flush();
(3)关闭流
close();
2、Reader类
(1)Reader类的常用子类及其功能
CharArrayReader//从字符数组中读取数据
FileReader
//从本地文件系统中读取字符序列
StringReader//从字符串中读取字符序列
PipedReader//从线程管道中读取字符序列
(2)Reader类的主要方法
read();
//读取字符
close();
//关闭流
字符流操作文件。代码如下:
流:对数据操作的对象。
根据流的方向。分类:输入流和输出流。
输入流读取数据,但是不能写入数据。输出流只能写入数据,不能读取数据。
根据处理数据类型不同。分类:字节流和字符流。
字节流以字节为基本单位进行处理,也称为原始数据,适合7 位ASCII码操作;而字符流以字符为基本单位进行处理,用2字节的Unicode作为编码。
二、字节流(InputStream和OutputStream类)
InputStream是所有字节输入流的父类;OutputStream是所有字节输出流的父类。
1、InputStream类(输入流)
(1)InputStream有5个低级输入流
ByteArrayInputStream 从内存数组中读取数据字节
FileInputStream 从本地文件系统中读取数据字节
PipedInputStream 从线程管道中读取数据字节
StringBufferInputStream 从字符串中读取数据字节
SequenceInputStream 将多个InputStream合并为一个
(2)除了构造方法外,InputStream中所提供的方法如下:
int read(); //读取数据
close();
//关闭流
void mark(); //标记流
void reset(); //重置流
2、OutputStream类(输出流)
(1)输出数据的方法如下:
void write();/写入数据
flush()l
//刷新流
close();
//关闭流
字节流操作图片,代码如下:
public class PhotoDemo { public PhotoDemo() { // TODO Auto-generated constructor stub } public static void main(String[] args) { File f = new File("C://01.jpg"); File f1 = new File("C://03.jpg"); // TODO Auto-generated method stub try { FileImageInputStream fiis = new FileImageInputStream(f); FileImageOutputStream fios = new FileImageOutputStream(f1); byte[] b = new byte[(int) fiis.length()]; int len = 0; fiis.read(b, 0, len ); while((len = fiis.read(b))!=-1){ fios.write(b, 0, len); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
三、字符流(Write和Reader类)
1、Write类
(1)向输出流写入字符
void writer();
(2)刷新输出流,并且输出所有被缓存的字节。
flush();
(3)关闭流
close();
2、Reader类
(1)Reader类的常用子类及其功能
CharArrayReader//从字符数组中读取数据
FileReader
//从本地文件系统中读取字符序列
StringReader//从字符串中读取字符序列
PipedReader//从线程管道中读取字符序列
(2)Reader类的主要方法
read();
//读取字符
close();
//关闭流
字符流操作文件。代码如下:
public class MyTestIO { public MyTestIO() { // TODO Auto-generated constructor stub } public static void main(String[] args) { // TODO Auto-generated method stub try { FileWriter fw = new FileWriter("E://you.txt"); FileReader fr = new FileReader("E://my.txt"); char[] ch = new char[5]; int i = fr.read(ch); fw.write(ch, 0, i); fr.close(); fw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关文章推荐
- 三角的写法
- GDI+学习记录之遍历系统中所有字体系列
- Tachyon 0.7.1伪分布式集群安装与测试
- POJ 1083 Moving Tables (水题)
- json字符串的拼接,并转换为json对象
- MediaPlayer常见错误
- C++用法的学习心得
- unity3d+sharesdk【ios篇】
- idea+maven笔记
- Android中使用ViewPager制作广告栏滚屏效果
- highchars项目中的实战,与ajax结合接收后台传过来的数据
- 使用adb connect对appium进行无线自动化测试
- xcode下git的使用
- github上传项目报src refspec master does not match any
- SOAP协议和基于SOAP的开发流程详述
- 学习看linux 帮助
- lcd_density
- 0909 编译原理 第1次上机
- 介绍——基于类的视图(class-based view)
- 织梦开启错误提示方法