Java中的IO操作:文件流、字符流、字节流学习指南
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操作。
