Java的io流使用
2017-01-14 16:54
211 查看
File类
File类是java.io包下代表与平台无关的文件和目录。如果希望在程序中操作文件和目录,都可以通过File类来完成。注意:File能新建、删除、重命名文件和目录但是不能访问文件内容本身,要访问文件本身时就要使用I/O流(输入/输出流)
Java的IO流
输入流:只能从中读取数据,而不能向其中写入数据
输出流:
只能向其写入输出,而不能从中读取数据。
注意:此处的输入输出是从程序的内存角度考虑的。
字节流和字符流
字节流和字符流用法几乎完全一样,区别在于字节流和字符流操作的单元不同,字节流操作的是字节,字符流操作的是字符。流的概念模型
如果把Java里的数据抽象为流模型,那么把输入输出设备当做水管,输入流就是从水管里抽水滴,水滴的单位分别为字符和字节。输出流就是向水管里输入水滴,单位为字符和字节。InputStream和Reader
InputStream和Reader都是输入流的抽象基类。InputStream单位是字符,Reader单位是字符。以下是使用实例:
InputStream
FileInputStream file=new FileInputStream("test.txt");//创建字节输入流 byte []bbuf=new byte[32];//一次取多少滴“水” int hasread=0;//用于实际读取的字节数 while((hasread=file.read(bbuf)>0)){ System.out.print(new String(bbuf,0,hasread))//将字节数组转化为字符串输入 file.close(); }
Reader
FileReader file=new FileReader("test.txt");//创建字节输入流 char []bbuf=new char[32];//一次取多少滴“水” int hasread=0;//用于实际读取的字符数 while((hasread=file.read(bbuf)>0)){ System.out.print(new String(bbuf,0,hasread))//将字节数组转化为字符串输入 file.close();
两者的用法几乎完全一样,只是单位不同。但是这里有一个问题。char在Java中占两个字节,可以表示任意字符,但是byte只占一个字节,所以如果一次只读取一个或者一次读取的位数不是二的倍数就会出现乱码现象所以在读取纯文本文档的时候用Reader在读取其他文件时则使用计算机能够识别的字节使用InputStream
相关文章推荐
- Java中IO流的使用例子
- JAVA 文件上传下载笔记之使用基本IO流实现上传
- Java学习之IO流下(转换流,数据流 ,print流 ,object简单使用)
- 黑马程序员——Java基础——IO流笔记(BufferedReader使用示例)
- Java基础之IO流中使用FileWriter和FileReader实现拷贝文件
- java.net的使用,中间穿插了IO流的应用很使用的。
- 黑马程序员——Java基础——IO流笔记(BufferedWriter使用示例)
- “黑马程序员”java_IO流之PipedInputStream管道流的使用
- java IO流的使用方式
- 黑马程序员——Java基础——IO流笔记(BufferedWriter使用示例)
- JAVA 中的IO流详解及其使用方法、例子
- Java基础之IO流,使用字符流缓冲区复制文件
- Java IO流几种经典使用方式
- 黑马程序员_Java基础_IO流_字节流,字节流操作文件,缓冲区字节流,流的使用规律,异常记录原理
- java_IO流之PipedInputStream管道流的使用
- java中io流的使用例子
- java IO流之三 使用缓冲流来读写文件
- Java基础之IO流,使用File类以树形结构打印指定文件目录
- 黑马程序员 【】java学习之路——IO流使用解析
- 黑马程序员——Java基础——IO流笔记(FileReader使用示例)