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函数时,应根据实际需要选择合适的函数,以实现与外部设备的交互。同时,在读写文件时,应考虑数据的安全和完整性,以避免数据丢失或者损坏。