Java中的IO流操作函数及其使用方法
Java中的IO流是一种用于输入/输出操作的类库,其中包括文件读取、网络传输、内存缓存等所有可能的输入/输出方式。IO流操作函数包含了许多不同的方法和类,这些方法和类按照它们的输入/输出方式被分为四大类别:字节流、字符流、对象流和随机访问文件流。下面就分别介绍这些流以及它们的相关函数和使用方法。
1.字节流
字节流是输入/输出的一种基本方式,因为它们能读写几乎所有类型的数据,不管是文本文件还是图像文件。常见的字节流操作函数包括:
1.1 FileInputStream
FileInputStream是用于读取文件数据的字节流方法,它的主要作用是从指定的文件中读取数据。操作方法如下:
FileInputStream fis = new FileInputStream("file.txt");
byte[] content = new byte[fis.available()];
fis.read(content);
fis.close();
上述代码中,fis.available()方法返回文件中的可用字节数,然后使用read()方法读取所有可用字节,并将结果保存在byte数组content中。最后,使用close()方法关闭文件输入流。
1.2 FileOutputStream
与FileInputStream相反,FileOutputStream方法的作用是向文件中写入字节数据。操作方法如下:
FileOutputStream fos = new FileOutputStream("file.txt");
byte[] content = "Hello World".getBytes();
fos.write(content);
fos.close();
上述代码中,使用getBytes()方法将字符串"Hello World"转换为字节数组,然后通过write()方法将该字节数组写入到文件中。
2.字符流
字符流是用于读写文本数据的输入/输出方式。相对于字节流,字符流可以更方便地处理文本数据,并支持指定编码格式。常见的字符流操作函数包括:
2.1 FileReader
FileReader方法是用于读取字符文件的字符流方法,它的作用与FileInputStream相同,但它更适用于文本文件。操作方法如下:
FileReader fr = new FileReader("file.txt");
char[] content = new char[1024];
fr.read(content);
fr.close();
上述代码中,使用read()方法从文本文件中读取1024个字符,并保存到字符数组content中。最后,使用close()方法关闭文件输入流。
2.2 FileWriter
和FileReader相反,FileWriter方法是用于写入字符文件的字符流方法。操作方法如下:
FileWriter fw = new FileWriter("file.txt");
String content = "Hello World";
fw.write(content);
fw.close();
上述代码中,使用write()方法将字符串"Hello World"写入到文件中,然后使用close()方法关闭文件输出流。
3.对象流
对象流是用于读写Java对象的一种方式。它支持将对象序列化成字节流并写入文件,以及从文件中读取字节流并反序列化为Java对象。常见的对象流操作函数包括:
3.1 ObjectOutputStream
ObjectOutputStream方法是用于将Java对象序列化成字节流并写入文件的方法,操作方法如下:
Person person = new Person("张三", 20, "男");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.txt"));
oos.writeObject(person);
oos.close();
上述代码中,使用ObjectOutputStream将Person对象序列化成字节流并写入到文件person.txt中。
3.2 ObjectInputStream
ObjectInputStream方法是用于从文件中读取字节流并反序列化为Java对象的方法,操作方法如下:
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.txt"));
Person person = (Person)ois.readObject();
ois.close();
上述代码中,使用ObjectInputStream从文件person.txt中读取字节流并反序列化为Person对象。
4.随机访问文件流
随机访问文件流是一种支持在文件中任意位置读写数据的输入/输出方式。常见的随机访问文件流操作函数包括:
4.1 RandomAccessFile
RandomAccessFile方法是用于在文件中进行随机读写操作的方法,它支持对文件的任意位置进行读写操作。操作方法如下:
RandomAccessFile raf = new RandomAccessFile("file.txt", "rw");
raf.write("Hello World".getBytes());
raf.seek(6);
byte[] content = new byte[5];
raf.read(content);
System.out.println(new String(content));
raf.close();
上述代码中,使用RandomAccessFile对象向文件中写入字符串"Hello World",再使用seek()方法将文件指针定位到第6个字节的位置,最后使用read()方法读取5个字节,并将结果输出到控制台。
以上是Java中常见的IO流操作函数及其使用方法,需要根据具体的情况选择不同的输入/输出方式。对于字节流和字符流,如果使用FileReader和FileWriter,需要注意指定编码格式;对于对象流和随机访问文件流,需要注意序列化和反序列化的问题。
