欢迎访问宙启技术站

Java中常用IO函数及其使用方法

发布时间:2023-06-12 06:27:57

Java中常用IO函数及其使用方法

Java提供了丰富的IO操作函数库,以实现与外部设备的交互。Java中的IO函数主要分为两类:字节流和字符流。字节流主要用于与二进制文件进行交互,而字符流用于与文本文件进行交互。

一、字节流函数

1. FileInputStream

FileInputStream函数可以用于读取二进制文件,如图像、影音等。使用该函数,需要先创建一个文件输入流,再创建一个字节数组,最后读入数据。

示例代码:

FileInputStream fis = new FileInputStream("test.jpg");
byte[] data = new byte[fis.available()];
fis.read(data);

2. FileOutputStream

FileOutputStream函数用于写入二进制文件,也适用于写入非文本数据。使用该函数,需要先创建一个文件输出流,再创建一个字节数组,最后将数组写入文件。

示例代码:

byte[] data = {1,2,3,4,5};
FileOutputStream fos = new FileOutputStream("data.bin");
fos.write(data);

3. ByteArrayInputStream

ByteArrayInputStream函数可以将byte数组作为输入流进行读取。使用该函数,需要先创建一个字节数组,再将数组传给ByteArrayInputStream函数。

示例代码:

byte[] data = {1,2,3,4,5};
ByteArrayInputStream bais = new ByteArrayInputStream(data);
int b;
while ((b = bais.read()) != -1) {
    //处理数据
}

4. ByteArrayOutputStream

ByteArrayOutputStream函数可以将byte数组作为输出流进行写入。使用该函数,需要先创建一个空的ByteArrayOutputStream对象,然后将所需写入的数据传给该对象的write函数。

示例代码:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] data = {1,2,3,4,5};
baos.write(data);
byte[] result = baos.toByteArray();

5. DataInputStream

DataInputStream函数可以用于读取基本数据类型和字符串。使用该函数,需要先创建一个文件输入流,然后将文件输入流传给DataInputStream对象。

示例代码:

FileInputStream fis = new FileInputStream("data.bin");
DataInputStream dis = new DataInputStream(fis);
int x = dis.readInt();

6. DataOutputStream

DataOutputStream函数可以用于写入基本数据类型和字符串。使用该函数,需要先创建一个文件输出流,将文件输出流传给DataOutputStream对象。

示例代码:

FileOutputStream fos = new FileOutputStream("data.bin");
DataOutputStream dos = new DataOutputStream(fos);
dos.writeInt(1234);

二、字符流函数

1. FileReader

FileReader函数可以用于读取文本文件。使用该函数,需要先创建一个文件读取器,将文件名传给该读取器,再创建一个字符数组,最后读入数据。

示例代码:

FileReader fr = new FileReader("test.txt");
char[] data = new char[1024];
fr.read(data);
String str = new String(data);

2. FileWriter

FileWriter函数可以用于将字符串写入到文本文件中。使用该函数,需要先创建一个文件写入器,将文件名传给该写入器,最后将所需写入的数据传给write函数。

示例代码:

FileWriter fw = new FileWriter("test.txt");
fw.write("Hello World!");
fw.flush();

3. BufferedReader

BufferedReader函数可以用于读取一个文本文件中的一行数据。使用该函数,需要先创建一个文件读取器,再将文件读取器传给BufferedReader对象。

示例代码:

FileReader fr = new FileReader("test.txt");
BufferedReader br = new BufferedReader(fr);
String line = br.readLine();

4. BufferedWriter

BufferedWriter函数可以用于将一行数据写入到一个文本文件中。使用该函数,需要先创建一个文件写入器,再将该写入器传给BufferedWriter对象,最后将所需写入的数据传给write函数。

示例代码:

FileWriter fw = new FileWriter("test.txt");
BufferedWriter bw = new BufferedWriter(fw);
bw.write("Line 1");
bw.newLine();
bw.write("Line 2");
bw.flush();

5. InputStreamReader

InputStreamReader函数可以用于将字节流转换为字符流。使用该函数,需要先创建一个字节输入流,再将该输入流传给InputStreamReader构造函数。

示例代码:

FileInputStream fis = new FileInputStream("test.txt");
InputStreamReader isr = new InputStreamReader(fis);
char[] data = new char[1024];
isr.read(data);
String str = new String(data);

6. OutputStreamWriter

OutputStreamWriter函数可以用于将字符流转换为字节流,以便于将字符输出到其他设备。使用该函数,需要先创建一个字节输出流,再将该输出流传给OutputStreamWriter构造函数。

示例代码:

FileOutputStream fos = new FileOutputStream("data.bin");
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write("Hello World!");
osw.flush();

总结

Java提供了丰富的IO函数库,包括字节流和字符流函数。在使用IO函数时,应根据实际需要选择合适的函数,以实现与外部设备的交互。同时,在读写文件时,应考虑数据的安全和完整性,以避免数据丢失或者损坏。