Java中的I/O函数库及其使用方法
Java中的I/O函数库包括java.io和java.nio包。这些函数库提供了各种用于输入和输出的类和方法,用于读取和写入文件、网络流以及其他数据源和目的地。
1. java.io包:
(1) File类:用于代表文件或文件夹,并提供了很多与文件相关的操作方法,如创建、删除、重命名、判断是否存在等。
(2) InputStream和OutputStream类:是所有输入流和输出流类的基类,提供了最基本的读取和写入字节的方法。
(3) FileInputStream和FileOutputStream类:用于读取和写入文件,提供了更高级别的读写方法,如读取一行、复制文件等。
(4) BufferedReader和BufferedWriter类:提供了带有缓冲区的读写方法,可以提高读写效率。
(5) DataInputStream和DataOutputStream类:用于读写基本数据类型(如int、double等)和字符串。
(6) InputStreamReader和OutputStreamWriter类:用于将字节流转换为字符流,提供了字符级别的读写方法。
(7) ObjectInputStream和ObjectOutputStream类:用于读写对象,并支持对象的序列化和反序列化。
(8) PrintStream和PrintWriter类:用于打印输出,提供了方便的输出方法,如格式化输出等。
2. java.nio包:
(1) FileChannel类:用于对文件进行读写操作,并支持内存映射文件。
(2) ByteBuffer类:用于存储字节数据的缓冲区,提供了读写字节的方法。
(3) CharBuffer类:用于存储字符数据的缓冲区,提供了读写字符的方法。
(4) Selector类:用于进行多路复用的选择器,可以同时监听多个通道的事件,并以事件驱动的方式进行处理。
(5) Pipe类:用于在两个线程之间进行通信,提供了一个管道通道,并提供读写方法。
使用方法示例:
1. 使用File类创建、删除和重命名文件:
File file = new File("file.txt");
file.createNewFile(); // 创建文件
file.delete(); // 删除文件
file.renameTo(new File("newfile.txt")); // 重命名文件
2. 使用FileInputStream和FileOutputStream读取和写入文件:
FileInputStream fis = new FileInputStream("file.txt");
int data;
while ((data = fis.read()) != -1) {
System.out.print((char) data); // 读取并打印文件内容
}
fis.close();
FileOutputStream fos = new FileOutputStream("newfile.txt");
String content = "Hello, World!";
fos.write(content.getBytes()); // 写入字符串到文件
fos.close();
3. 使用BufferedReader和BufferedWriter读取和写入文件:
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line); // 按行读取并打印文件内容
}
br.close();
BufferedWriter bw = new BufferedWriter(new FileWriter("newfile.txt"));
bw.write("Hello, World!"); // 写入字符串到文件
bw.newLine(); // 写入换行符
bw.close();
4. 使用ObjectInputStream和ObjectOutputStream读写对象:
class Person implements Serializable {
private String name;
public Person(String name) {
this.name = name;
}
public void sayHello() {
System.out.println("Hello, " + name + "!");
}
}
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.dat"));
oos.writeObject(new Person("Alice")); // 序列化对象并写入文件
oos.close();
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.dat"));
Person person = (Person) ois.readObject(); // 从文件读取对象并反序列化
person.sayHello();
ois.close();
以上仅为部分I/O函数库的使用方法,还有很多其他函数和类可供学习和使用。在实际开发中,根据具体的需求选择合适的类和方法进行输入和输出操作。
