输入输出流深入理解与应用
2015-03-24 14:44
162 查看
一、分类
java.io 包中定义了多个流类型(类和抽象类)来实现输入、输入功能,可以从不同角度对其进行分类:
按输入方向的不同可以分为 输入流和输出流;
按数据单位的不同可以分为:字节流和字符流
按功能分为: 节点流和处理流
字节流:InputStream、OutputStream
字符流:Writer、 Reader
二、流功能分析
读取流是从输入设备或数据对象中读取数据到程序,用程序进行处理读入的数据,写出流是把程序处理的数据输出到
输出设备上比如硬盘和控制台。
字节流读取和写入的数据单位是字节,可以读取和写入任何类型的数据。字符流读取跟写入的数据单位是字符,只能
读取和
写入文本类型的数据。当需要读取或写入文本型的数据时要用字符流,因为它会比字节流读写字符更方便和高效,相反当数
据不是文本型时只能用字节流来读取跟写入。
三、流中读写方法的示例。(当用到IO流时就有可能出现IO异常,所以需要处理可能的异常)
字节流:
FileOutputStream fos = new FileOutputStream(“D://xxx.xxx”);
fos.write(“dsfdsf”.getBytes());//写入字节数组
fos.close(); //用完后需要关闭流,释放资源。字节流不需要Flush
FileInputStream fis = new FileInputStream(“D://xxx.xxx”);
fis.read(); //读取一个字节
fis.close();
字符流:
FileWriter fw = new FileWriter(“D:\xxx.txt”);
fw.write(“sdfsdfsdf”);//可以直接写入字符串
fw.flush(); //写完后需要Flush,才能真正写道输出设备
fw.close(); //close()时也会Flush。
FileReader fr = new FileReader(“D:\xxx.txt”);
fr.read(char[] ch);//可以读取一个字符数组的内容
fr.close();
四、转换流
当需要流之间的转换时会用到转换流。
1、把字节读取流转换成字符读取流
InputStreamReader isr = new InputStreamReader(new FileInputStream(“xxx.xxx”));
2、把字符输出流转化成字节输出流
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(“xx.xxx”));
五、缓冲流
需要提高流的读写效率时会用到缓冲流
1、字节缓冲流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(“xx”));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(“xx”));
2、字符缓冲流
BufferedReader br = new BufferedReader(new FileReader(“xx.txt”));
BufferedWriter bw = new BufferedWriter(new FileWriter(“xx.txt”));
缓冲流对读写功能进行了增强,而且使用缓冲技术提高了读写效率,所以当需要提高程序的读写效率时要使用缓冲流。
六、File类的使用
1、创建
boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。
和输出流不一样,输出流对象已建立创建文件。而且文件已经存在,会覆盖。
boolean mkdir()创建文件夹
boolean mkdirs() 创建多级文件夹
2、删除。
boolean delete();删除失败时返回false。如果文件正在被使用,则删除不了返回false。
void deleteOnExit();在程序退出时删除指定文件。
3、判断
boolean exists();文件是否存在。
isFile():是不是文件
isDirectory();是不是文件夹
isHidden();是不是隐藏文件
isAbsolute();是不是绝对路径
4、获取信息
getName();文件名
getPath();文件路径
getParent();上一层路径
getAbsolutePath();绝对路径
来源参考:http://www.blogjava.net/qileilove/archive/2014/04/18/412651.html
java.io 包中定义了多个流类型(类和抽象类)来实现输入、输入功能,可以从不同角度对其进行分类:
按输入方向的不同可以分为 输入流和输出流;
按数据单位的不同可以分为:字节流和字符流
按功能分为: 节点流和处理流
字节流:InputStream、OutputStream
字符流:Writer、 Reader
二、流功能分析
读取流是从输入设备或数据对象中读取数据到程序,用程序进行处理读入的数据,写出流是把程序处理的数据输出到
输出设备上比如硬盘和控制台。
字节流读取和写入的数据单位是字节,可以读取和写入任何类型的数据。字符流读取跟写入的数据单位是字符,只能
读取和
写入文本类型的数据。当需要读取或写入文本型的数据时要用字符流,因为它会比字节流读写字符更方便和高效,相反当数
据不是文本型时只能用字节流来读取跟写入。
三、流中读写方法的示例。(当用到IO流时就有可能出现IO异常,所以需要处理可能的异常)
字节流:
FileOutputStream fos = new FileOutputStream(“D://xxx.xxx”);
fos.write(“dsfdsf”.getBytes());//写入字节数组
fos.close(); //用完后需要关闭流,释放资源。字节流不需要Flush
FileInputStream fis = new FileInputStream(“D://xxx.xxx”);
fis.read(); //读取一个字节
fis.close();
字符流:
FileWriter fw = new FileWriter(“D:\xxx.txt”);
fw.write(“sdfsdfsdf”);//可以直接写入字符串
fw.flush(); //写完后需要Flush,才能真正写道输出设备
fw.close(); //close()时也会Flush。
FileReader fr = new FileReader(“D:\xxx.txt”);
fr.read(char[] ch);//可以读取一个字符数组的内容
fr.close();
四、转换流
当需要流之间的转换时会用到转换流。
1、把字节读取流转换成字符读取流
InputStreamReader isr = new InputStreamReader(new FileInputStream(“xxx.xxx”));
2、把字符输出流转化成字节输出流
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(“xx.xxx”));
五、缓冲流
需要提高流的读写效率时会用到缓冲流
1、字节缓冲流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(“xx”));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(“xx”));
2、字符缓冲流
BufferedReader br = new BufferedReader(new FileReader(“xx.txt”));
BufferedWriter bw = new BufferedWriter(new FileWriter(“xx.txt”));
缓冲流对读写功能进行了增强,而且使用缓冲技术提高了读写效率,所以当需要提高程序的读写效率时要使用缓冲流。
六、File类的使用
1、创建
boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。
和输出流不一样,输出流对象已建立创建文件。而且文件已经存在,会覆盖。
boolean mkdir()创建文件夹
boolean mkdirs() 创建多级文件夹
2、删除。
boolean delete();删除失败时返回false。如果文件正在被使用,则删除不了返回false。
void deleteOnExit();在程序退出时删除指定文件。
3、判断
boolean exists();文件是否存在。
isFile():是不是文件
isDirectory();是不是文件夹
isHidden();是不是隐藏文件
isAbsolute();是不是绝对路径
4、获取信息
getName();文件名
getPath();文件路径
getParent();上一层路径
getAbsolutePath();绝对路径
来源参考:http://www.blogjava.net/qileilove/archive/2014/04/18/412651.html
相关文章推荐
- 【转】输入/输出流 - 深入理解Java中的流 (Stream)
- 输入/输出流 - 深入理解 Java中的 流 (Stream)
- 【转】输入/输出流 - 深入理解 Java中的 流 (Stream)
- 对C语言输入输出流和缓冲区的深入理解
- 深入理解Java注解(2):高级应用
- 深入理解C++11:C++11新特性解析与应用
- 深入理解Android卷III 第5章 深入理解Android输入系统 (节选)
- 深入理解js的prototype以及prototype的一些应用
- 深入理解maven与应用(二):灵活的构建
- 深入理解和应用Float属性
- 深入理解.net framwork中的Application domain(应用域) 概念
- 深入理解scanf()的输入
- c++13周实验:输入/输出流的综合应用
- 深入理解IOC控制反转及应用实例
- 文件数据输入输出流对象的简单应用(DataOutputStream和DateInputStream)
- 【JAVA应用】输入输出流工具类
- strtotime 深入理解应用实例
- 深入理解js的prototype以及prototype的一些应用
- JAVA IO输入输出流部分代码的入门应用
- 深入理解Android输入系统--初识Android输入系统