欢迎访问宙启技术站
智能推送

Java中的I/O函数库及其使用方法

发布时间:2023-09-28 11:00:49

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函数库的使用方法,还有很多其他函数和类可供学习和使用。在实际开发中,根据具体的需求选择合适的类和方法进行输入和输出操作。