Java文件I/O操作是指对文件进行输入和输出的操作,在Java中很方便地使用了文件I/O操作。文件I/O操作可以分为文件字节输入输出流和文件字符输入输出流两种,而Java的文件I/O操作以文件流为中心。
一、文件字节输入输出流
文件字节输入输出流是用于以字节为单位的I/O操作。文件字节输入输出流使用InputStream和OutputStream这两个类进行操作。其中,InputStream是用于从文件中读入数据,而OutputStream则是将数据写入文件。
以下代码示例演示了如何使用文件字节输入输出流进行文件读写:
import java.io.*;
public class FileStreamTest {
public static void main(String[] args) {
try {
byte[] bytesToWrite = {1, 2, 3};
FileOutputStream out = new FileOutputStream("test.txt");
out.write(bytesToWrite);
out.close();
FileInputStream in = new FileInputStream("test.txt");
byte[] bytesRead = new byte[2];
in.read(bytesRead);
in.close();
for (byte b : bytesRead) {
System.out.println(b);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
二、文件字符输入输出流
文件字符输入输出流是用于以字符为单位的I/O操作。文件字符输入输出流使用Reader和Writer这两个类进行操作。其中,Reader是用于从文件中读入字符,而Writer则是将字符写入文件。
以下代码示例演示了如何使用文件字符输入输出流进行文件读写:
import java.io.*;
public class FileWriterTest {
public static void main(String[] args) {
try {
String stringToWrite = "Hello, World!";
FileWriter out = new FileWriter("test.txt");
out.write(stringToWrite);
out.close();
FileReader in = new FileReader("test.txt");
char[] charsRead = new char[5];
in.read(charsRead);
in.close();
for (char c : charsRead) {
System.out.println(c);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
三、文件流的输入输出操作
文件流的输入输出操作指的就是对文件进行读写操作。在进行文件I/O操作时,我们常使用BufferedInputStream和BufferedOutputStream这两个类来进行缓冲操作,提高效率。同时,Java也提供了FileReader和FileWriter这两个类来方便地进行文件的读写操作。
以下代码示例演示了通过文件流的输入输出操作来读写文件,并使用缓存提高效率:
import java.io.*;
public class FileReadWriteWithBufferedStream {
public static void main(String[] args) {
try {
FileInputStream fileIn = new FileInputStream("test.txt");
BufferedInputStream bufIn = new BufferedInputStream(fileIn);
FileOutputStream fileOut = new FileOutputStream("out.txt");
BufferedOutputStream bufOut = new BufferedOutputStream(fileOut);
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = bufIn.read(buffer)) != -1) {
bufOut.write(buffer, 0, bytesRead);
}
bufOut.flush();
bufIn.close();
bufOut.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
四、文件读写操作的异常处理
文件I/O操作具有风险,因为文件可能不存在、权限不足等原因而无法读取或写入。因此,在进行文件读写操作时,我们应该在代码中进行合适的异常处理。Java中提供了IOException和FileNotFoundException两个类来处理文件I/O操作异常。
以下代码示例演示了如何在文件读写操作中处理异常:
import java.io.*;
public class FileReadDemo {
public static void main(String[] args) {
File file = new File("test.txt");
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line = "";
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
fr.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
五、小结
Java文件I/O操作是Java编程中常用的操作之一。Java文件I/O操作以文件流为中心,包括文件字节输入输出流和文件字符输入输出流两种类型。在文件读写操作中,我们可以使用缓冲区和异常处理技术来提高效率和降低出错率。通过学习文件I/O操作,可以让我们更好地应对Java编程中的文件读写操作。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/272166.html
微信扫一扫
支付宝扫一扫