如何使用Java中的IO函数读取和写入文件?
Java是一种高级编程语言,具有强大的I / O功能,可用于读取和写入文件。当涉及到Java I / O时,它通常指的是将数据从文件系统读取到应用程序中,或者将数据从应用程序写入文件系统。对于这些任务,Java提供了许多类和方法。
Java中的I / O类可分为以下几类:
1. 输入流
2. 输出流
3. 文件I / O
4. 缓冲I / O
5. 对象I / O
在本文中,我们将讨论如何使用Java I / O类读取和写入文件。
使用Java I / O函数读取文件
Java有许多用于读取文件的I / O类和函数。其中最常见的是FileInputStream类。该类提供了许多读取数据的方法,例如:
1. read()
2. read(byte[] b)
3. read(byte[] b, int off, int len)
4. skip(long n)
其中,read()函数从输入流中读取一个字节,如果到达文件的末尾,则返回-1。read(byte[] b)函数从输入流中最多读取“ b.length”字节,并将这些字节存储在字节数组“ b”中。read(byte[] b, int off, int len)函数从输入流中读取最多“ len”字节的数据,并将它们存储在字节数组“ b”中,始于偏移量“ off”。skip(long n)函数从输入流中跳过“ n”个字节的数据。
以下是一个Java程序,演示如何使用FileInputStream类读取文件:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadFileDemo {
public static void main(String[] args) {
FileInputStream fis = null;
try {
File file = new File("example.txt");
fis = new FileInputStream(file);
System.out.println("Total file size to read (in bytes) : " + fis.available());
int content;
while ((content = fis.read()) != -1) {
// convert to char and display
System.out.print((char) content);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis != null)
fis.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
在上面的示例中,我们使用了FileInputStream类来读取文件中的内容。首先,我们打开了文件example.txt,然后使用fis.read()函数从文件中读取每个字符,直到到达文件的末尾为止。
使用Java I / O函数编写到文件
Java具有许多用于编写文件内容的I / O类和函数。其中最常用的是FileOutputStream类。该类提供了许多写入数据的方法,例如:
1. write(int b)
2. write(byte[] b)
3. write(byte[] b, int off, int len)
4. flush()
5. close()
其中,write(int b)函数将一个字节写入输出流中。write(byte[] b)函数将字节数组中的所有字节写入输出流中。write(byte[] b, int off, int len)函数从数组“ b”中写入最多“ len”个字节的数据,并从偏移量“ off”处开始写入。flush()函数刷新输出流并将所有缓冲的数据写入底层设备中close()函数关闭输出流并释放与之关联的所有资源。
以下是一个Java程序,演示如何使用FileOutputStream类将数据写入文件中:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
public class WriteFileDemo {
public static void main(String[] args) {
FileOutputStream fos = null;
try {
String content = "This is the text content";
File file = new File("example.txt");
fos = new FileOutputStream(file);
// get the content in bytes
byte[] bytes = content.getBytes(StandardCharsets.UTF_8);
fos.write(bytes);
fos.flush();
System.out.println("File written successfully");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fos != null)
fos.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
在上面的示例中,我们使用了FileOutputStream类将字符串内容写入文件example.txt中。首先,我们将字符串内容转换为字节数组,然后使用fos.write()函数将字节数组写入文件中。最后,我们使用fos.flush()函数刷新输出流,并使用fos.close()函数关闭输出流。
