输入/输出流和文件操作
来源:互联网 发布:vc编程软件 编辑:程序博客网 时间:2024/05/16 17:17
一、流的概念
流:对数据操作的对象。
根据流的方向。分类:输入流和输出流。
输入流读取数据,但是不能写入数据。输出流只能写入数据,不能读取数据。
根据处理数据类型不同。分类:字节流和字符流。
字节流以字节为基本单位进行处理,也称为原始数据,适合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 stubtry {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 blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.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 stubtry {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 blocke.printStackTrace();}}}
- 输入/输出流和文件操作
- 【c++笔记十三】c++中的输入、输出和文件操作
- 【c++笔记十三】c++中的输入、输出和文件操作
- C++——输入、输出和文件
- 第17章-输入、输出和文件
- java 关于中文字的输出 输入 和文件操作(对象序列化)
- java中使用文件输入流和文件输出流进行文件读写的用例!
- 第17章——输入、输出和文件
- 【C++ primer】第十七章 输入、输出和文件
- 标准输入、输出和错误和文件重定向
- 标准输入、输出和错误和文件重定向
- C++ Primer Plus 第17章 输入,输出和文件
- 标准输入、输出和错误和文件重定向
- 标准输入、输出和错误和文件重定向
- C++ Primer Plus 之 输入、输出和文件
- C了个++:01 - C++的输入、输出和文件
- C++学习:在C++中的文件输入和文件输出
- JAVA中 序列化和文件的输入/输出问题
- 三角的写法
- Android Application理解
- GDI+学习记录之遍历系统中所有字体系列
- XML技术须知讲解
- 字符编码笔记:ASCII,Unicode和UTF-8
- 输入/输出流和文件操作
- 将本地工程上传到github
- 扩展正则表达式
- iOS 笔记总结一
- 【ZJOI2012】【BZOJ2656】数列(sequence)
- ios开发细节及相关框架
- hash_map和map
- TortoiseSVN中分支和合并实践
- app.json内容分析