文件字节流FileInputStream 和 FileOutputStream
- FileInputStream 和 FileOutputStream是字节流,是节点流,数据源和目的地是文件
- 复制文件需要分创建一个输入流和输出流完成文件读写
- 需要创建一个中转站,借助循环和中转站完成复制
第一种方式(是一个字符)
package IO;
/**
* 使用FileInputStream和FileOutputStream实现文件复制
*
* 1.如何创建流
* InputStream fis = new FileInputStream()
*
*
*
* 2.如何使用流
* 准备一个中转站,借助循环和中转站,使用输入流和输出流完成复制
* int n;
* n = fis.read();
*
* 3.(使用完后一定要关闭流)
*/
import java.io.*;
public class TestFileStream {
public static void main(String[] args) throws IOException {
//1.创建流
// File file = new File("D:\\read.txt");
// InputStream fis = new FileInputStream(file);
// File file1 = new File("D:\\read1.txt");
// OutputStream ots = new FileOutputStream(file1);
/**
* 简写创建流
*/
// InputStream fis = new FileInputStream(new File("D:\\read.txt"));
// OutputStream fos = new FileOutputStream(new File("D:\\read1.txt"));
InputStream fis = new FileInputStream("D:\\read.txt");
OutputStream fos = new FileOutputStream("D:\\\\read1.txt");
//2.使用流
//2.1准备一个中转站(一个字节)
int n;
//先读一个字节
n = fis.read(); //读源文件的一个字节赋给n
while (n != -1) { //读到了数据,还没有到文件末尾
//写一个字节
fos.write(n);
//在读一个字节
n = fis.read(); //读源文件的一个字节赋给n
}
//3.关闭流
fis.close();
fos.close();
}
}
第二种方式(使用的是字节数组)
package IO;
/**
* 使用FileInputStream和FileOutputStream实现文件复制
*
* 1.如何创建流
* InputStream fis = new FileInputStream()
*
*
*
* 2.如何使用流
* 准备一个中转站,借助循环和中转站,使用输入流和输出流完成复制
* int n;
* n = fis.read();
*
* 3.(使用完后一定要关闭流)
*/
import java.io.*;
public class TestFileStream1 {
public static void main(String[] args) throws IOException {
//1.创建流
// File file = new File("D:\\read.txt");
// InputStream fis = new FileInputStream(file);
// File file1 = new File("D:\\read1.txt");
// OutputStream ots = new FileOutputStream(file1);
/**
* 简写创建流
*/
// InputStream fis = new FileInputStream(new File("D:\\read.txt"));
// OutputStream fos = new FileOutputStream(new File("D:\\read1.txt"));
InputStream fis = new FileInputStream("D:\\read.txt");
OutputStream fos = new FileOutputStream("D:\\read1.txt");
//2.使用流
//2.1准备一个中转站(一个字节)
byte[] buf = new byte[1024];
//先读一个字节
int len = fis.read(buf); //使用输入流读取文件,将读到的内容放入到buf字节数组中,返回的是真正读取的字节
while (len != -1) { //读到了数据,还没有到文件末尾
//将字节数组的内容写入目的文件
fos.write(buf, 0, len);
//在读一次
len = fis.read(buf);
}
//3.关闭流
fis.close();
fos.close();
}
}
版权声明:本文为weixin_50644212原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。