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

Java中的IO操作:文件流、字符流、字节流学习指南

发布时间:2023-06-02 05:21:42

Java中的IO操作非常重要,它允许我们读写文件、网络数据、内存和其他一些数据源。Java提供了几种IO操作方式,本文将重点讲解文件流、字符流、字节流。

1. 文件流

文件流是指用于读写文件的操作流。Java中对于文件的输入输出操作主要有FileInputStream、FileOutputStream和RandomAccessFile这三个类。

1.1 FileInputStream

FileInputStream是Java中一个用于读取文件的InputStream类。它可以从一个文件中读取数据,并将数据写入到程序中。代码示例:

FileInputStream fis = new FileInputStream("file.txt");
int data;
while ((data = fis.read()) != -1) {
    System.out.print((char) data);
}
fis.close();

1.2 FileOutputStream

FileOutputStream是Java中一个用于写入文件的OutputStream类。使用它,可以将数据写入一个文件中。代码示例:

FileOutputStream fos = new FileOutputStream("file.txt");
String data = "hello world";
fos.write(data.getBytes());
fos.close();

1.3 RandomAccessFile

RandomAccessFile可以对文件进行随机读写。它既可以进行读取,也可以进行写入。代码示例:

RandomAccessFile raf = new RandomAccessFile("file.txt", "rw");
raf.writeBytes("hello");
raf.seek(0);
String data = raf.readLine();
System.out.print(data);
raf.close();

2. 字符流

字符流是指用于读写字符的操作流。Java中对于字符的输入输出操作主要有FileReader、FileWriter和BufferedReader、BufferedWriter这两个类。

2.1 FileReader

FileReader是Java中一个用于读取字符的Reader类。它可以从一个文件中读取数据,并将数据写入到程序中。代码示例:

FileReader fr = new FileReader("file.txt");
int data;
while ((data = fr.read()) != -1) {
    System.out.print((char) data);
}
fr.close();

2.2 FileWriter

FileWriter是Java中一个用于写入字符的Writer类。使用它,可以将数据写入一个文件中。代码示例:

FileWriter fw = new FileWriter("file.txt");
String data = "hello world";
fw.write(data);
fw.close();

2.3 BufferedReader/BufferedWriter

BufferedReader和BufferedWriter是用于读写字符的缓冲流。它们可以减少对磁盘的读写操作,提高性能。代码示例:

BufferedReader br = new BufferedReader(new FileReader("file.txt"));
String data;
while ((data = br.readLine()) != null) {
    System.out.println(data);
}
br.close();

BufferedWriter bw = new BufferedWriter(new FileWriter("file.txt"));
String data = "hello world";
bw.write(data);
bw.close();

3. 字节流

字节流是指用于读写字节的操作流。Java中对于字节的输入输出操作主要有InputStream、OutputStream和ByteArrayInputStream、ByteArrayOutputStream这两个类。

3.1 InputStream

InputStream是Java中一个用于读取字节的类。它可以从一个数据源中读取数据,并将数据写入到程序中。代码示例:

InputStream is = new FileInputStream("file.txt");
int data;
while ((data = is.read()) != -1) {
    System.out.print((char) data);
}
is.close();

3.2 OutputStream

OutputStream是Java中一个用于写入字节的类。使用它,可以将数据写入一个文件中。代码示例:

OutputStream os = new FileOutputStream("file.txt");
String data = "hello world";
os.write(data.getBytes());
os.close();

3.3 ByteArrayInputStream/ByteArrayOutputStream

ByteArrayInputStream和ByteArrayOutputStream是用于读写字节的内存流。它们可以将数据存储在内存中,而不是磁盘。代码示例:

String data = "hello world";
byte[] inputData = data.getBytes();

ByteArrayInputStream bais = new ByteArrayInputStream(inputData);
ByteArrayOutputStream baos = new ByteArrayOutputStream();

int data2;
while ((data2 = bais.read()) != -1) {
    baos.write(data2);
}

System.out.println(baos.toString());
bais.close();
baos.close();

总结

以上就是Java中常见的文件流、字符流、字节流的学习指南。了解它们的使用场景和方法后,可以更好地完成Java中的IO操作。