下面是Java中IO流文件读取、写入和复制的实例的完整攻略。
IO流简介
在Java中,输入输出都是通过流(Stream)来实现的,也就是将数据源或者目的地以流的形式组织起来,以字节为基础的流就是字节流,以字符为基础的流就是字符流。在Java中,IO流分为四个抽象类:InputStream、OutputStream、Reader和Writer。
文件读取
Java中的IO文件读取需要借助FileInputStream类。它的构造方法接收一个文件的路径,通过read()方法获得数组或者单个字节(int类型)。
下面是文件读取的示例代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class FileReadTest {
public static void main(String[] args) {
try {
File file = new File("test.txt");
FileInputStream fis = new FileInputStream(file);
byte[] content = new byte[(int) file.length()];
fis.read(content);
fis.close();
System.out.println(new String(content));
} catch (IOException e) {
e.printStackTrace();
}
}
}
上述代码中,首先构造了一个File对象,然后通过FileInputStream的read()方法读取文件的数据,最后将读取到的内容存放在一个字节数组中,并输出到控制台。
文件写入
Java中的IO文件写入需要借助FileOutputStream类。它的构造方法接收一个文件的路径,通过write()方法将字节数组或者单个字节(int类型)写入文件中。
下面是文件写入的示例代码:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileWriteTest {
public static void main(String[] args) {
try {
File file = new File("test.txt");
FileOutputStream fos = new FileOutputStream(file);
String content = "This is a test sentence.";
fos.write(content.getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
上述代码中,首先构造了一个File对象,然后通过FileOutputStream的write()方法将字符串转换成字节数组并写入文件中。
文件复制
Java中的IO文件复制需要借助FileInputStream和FileOutputStream类。我们可以通过将源文件的数据,读入到内存中(内存中相当于做了个中转站),然后将内存中的数据写入到目标文件中,达到复制文件的效果。
下面是文件复制的示例代码:
import java.io.*;
public class FileCopyTest {
public static void main(String[] args) {
try {
File source = new File("test.txt");
File target = new File("test_copy.txt");
FileInputStream fis = new FileInputStream(source);
FileOutputStream fos = new FileOutputStream(target);
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}
fis.close();
fos.close();
System.out.println("Copy file success.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
上述代码中,首先构造了两个File对象,然后通过FileInputStream的read()方法将源文件的内容读入到一个缓冲区中,然后通过FileOutputStream的write()方法将缓冲区中的内容写入到目标文件中,最后关闭输入输出流。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中IO流文件读取、写入和复制的实例 - Python技术站