文章插图
文件过滤器 子类
字节流字节流又分字节输入流(InputStream)和字节输出流(OutputStream) , 分别对应读和写;
字节输入流:FileInputStream , 字节输入流的使用案例代码如下:
import java.io.*;/** * 案例:使用字节流完成文件拷贝任务 。*/public class StreamCopyDemo {public static void main(String[] args) throws Exception {// 分别创建文件的源对象和目标对象File src = https://www.isolves.com/it/cxkf/yy/JAVA/2020-05-03/new File("stream.txt");File target = new File("stream_copy.txt");// 创建输入和输出管道InputStream in = new FileInputStream(src);OutputStream out = new FileOutputStream(target);// 读取/写出数据byte[] buffer = new byte[1024]; // 设置每次读取的字节数int len = -1; // 读取到的字节总数while ((len = in.read(buffer)) != -1) {// 写出数据out.write(buffer, 0, len);}// 关闭输入/输出管道in.close();out.close();}}
字节输入流在读取数据时使用的是read()方法 , 该方法还有另外的重载方法:void read(int b); // 读取单个字节void read(byte[] b); // 读取多个字节 , 并存储到(byte[] b)中void read(byte[] b, int off, int len); // 读取多个字节 , 并存储到(byte[] b)中 , 从数组b的off索引为止开始存储
字节输出流:FileOutputStream , 字节输出流的使用案例代码如下:
import java.io.*;/** * 案例:使用字节流完成文件拷贝任务 。*/public class StreamCopyDemo {public static void main(String[] args) throws Exception {// 分别创建文件的源对象和目标对象File src = https://www.isolves.com/it/cxkf/yy/JAVA/2020-05-03/new File("stream.txt");File target = new File("stream_copy.txt");// 创建输入和输出管道InputStream in = new FileInputStream(src);OutputStream out = new FileOutputStream(target);// 读取/写出数据byte[] buffer = new byte[1024]; // 设置每次读取的字节数int len = -1; // 读取到的字节总数while ((len = in.read(buffer)) != -1) {// 写出数据out.write(buffer, 0, len);}// 关闭输入/输出管道in.close();out.close();}}
与字节输入流在读取数据时使用的read()方法相对应的 , 字节输出流也提供了对应的写出数据的方法:write() , 该方法也有一些重载方法:out.write(int b); // b 写入文件的字节out.write(byte[] b); // b 要写入文件的数据 , 类型为byte数组out.write(byte[] b, int off, int len); // 把字节数组中的从off索引开始的len个字节写到文件中
注意:字节流读写中的数据类型是字节数据类型(byte[]) 。案例1 , 使用字节流完成文件拷贝任务 。
import java.io.*;/** * 案例:使用字节流完成文件拷贝任务 。*/public class StreamCopyDemo {public static void main(String[] args) throws Exception {// 分别创建文件的源对象和目标对象File src = https://www.isolves.com/it/cxkf/yy/JAVA/2020-05-03/new File("stream.txt");File target = new File("stream_copy.txt");// 创建输入和输出管道InputStream in = new FileInputStream(src);OutputStream out = new FileOutputStream(target);// 读取/写出数据byte[] buffer = new byte[1024]; // 设置每次读取的字节数int len = -1; // 读取到的字节总数while ((len = in.read(buffer)) != -1) {// 写出数据out.write(buffer, 0, len);}// 关闭输入/输出管道in.close();out.close();}}
字符流字符流又分字符输入流(Reader)和字符输出流(Writer) , 分别对应文件读和写;需要注意的是:字符流读写中的数据类型是字符数据类型(char[]) , 区别于字节流中的字节类型(byte[]) 。
字符输入流 , FileReader , 字符输入流的使用案例代码如下:
import java.io.File;import java.io.FileReader;import java.io.Reader;/** * 文件的字符输入流案例 */public class FileReaderDemo {public static void main(String[] args) throws Exception {// 创建资源对象File src = https://www.isolves.com/it/cxkf/yy/JAVA/2020-05-03/new File("file_reader.txt");// 创建文件字符输入流Reader reader = new FileReader(src);char[] buffer = new char[1024]; // 每次读取1024个字符int len = -1; // 当前读取到的字符长度while ((len = reader.read(buffer))!= -1) {String line = new String(line, 0, len);System.out.println(line);}// 关闭字符输入流reader.close();}}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 爱国的6字名言 爱国名言短句5~6字
- 鲁滨孙漂流记读后感 鲁滨孙漂流记读后感400字
- 北京的老字号,个个都藏着一道名菜
- 奥迪尾部的“数字+TFSI”代表什么意思?
- 试用期工作总结800字范文 实习期个人工作总结
- Java 如何利用钩子函数实现优雅停服?刨根问底
- 五分钟看穿Java并发相关概念,并发原来如此简单
- JavaScript、Ajax、jQuery全部知识点,1分钟速懂!
- 身份证号码18位数字都代表什么含义?
- 细黑发亮的红茶叫什么名字?[红茶]