Java中的 IO 流可以分为字节流和字符流。字节流以字节(8 位二进制数)为单位,而字符流以字符为单位,每个字符包含若干个字节。Java 中字符采用 Unicode 编码,每个字符占 2 个字节。
在 Java 中,字节输出流有两个主要的类:OutputStream 和 FileOutputStream。OutputStream 是字节输出流的抽象基类,可以调用其子类的 write() 方法将数据写入输出流。FileOutputStream 是输出流的一种,可用于将数据写入到文件中。
示例一:使用 FileOutputStream 写入数据
import java.io.*;
public class FileWriteDemo {
public static void main(String[] args) {
try {
FileOutputStream output = new FileOutputStream("output.txt");
output.write("Hello, World!".getBytes());
output.close();
System.out.println("Data has been written to the file.");
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
上面的代码通过 FileOutputStream 创建了一个输出流,并将字符串 “Hello, World!” 写入到文件中。getBytes() 方法将字符串转换成字节数组,write() 方法将字节数组写入到输出流中。
在 Java 中,字符输出流有两个主要的类:Writer 和 FileWriter。Writer 是字符输出流的抽象基类,可以调用其子类的 write() 方法将字符写入输出流。FileWriter 是输出流的一种,可用于将字符写入到文件中。
示例二:使用 FileWriter 写入数据
import java.io.*;
public class FileWriterDemo {
public static void main(String[] args) {
try {
FileWriter writer = new FileWriter("output.txt");
writer.write("Hello, World!");
writer.close();
System.out.println("Data has been written to the file.");
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
上面的代码通过 FileWriter 创建了一个输出流,并将字符串 “Hello, World!” 写入到文件中。注意,write() 方法接收的是字符串,而不是字节数组。
字节输入流有两个主要的类:InputStream 和 FileInputStream。InputStream 是字节输入流的抽象基类,可以调用其子类的 read() 方法从输入流中读取数据。FileInputStream 是输入流的一种,可以从文件中读取数据。
示例三:使用 FileInputStream 读取文件数据并输出
import java.io.*;
public class FileReadDemo {
public static void main(String[] args) {
try {
FileInputStream input = new FileInputStream("output.txt");
int data = input.read();
while (data != -1) {
System.out.print((char) data);
data = input.read();
}
input.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
上面的代码通过 FileInputStream 创建了一个输入流,并从文件中读取数据。while 循环用于读取输入流中的数据,直到读取完整个文件。注意,read() 方法返回的是 int 类型的数据,表示的是一个字节的数据,需要转换为 char 类型才能输出。
字符输入流有两个主要的类:Reader 和 FileReader。Reader 是字符输入流的抽象基类,可以调用其子类的 read() 方法从输入流中读取数据。FileReader 是输入流的一种,可以从文件中读取数据。
示例四:使用 FileReader 读取文件数据并输出
import java.io.*;
public class FileReaderDemo {
public static void main(String[] args) {
try {
FileReader reader = new FileReader("output.txt");
int data = reader.read();
while (data != -1) {
System.out.print((char) data);
data = reader.read();
}
reader.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
上面的代码通过 FileReader 创建了一个输入流,并从文件中读取数据。while 循环用于读取输入流中的数据,直到读取完整个文件。注意,read() 方法返回的是 int 类型的数据,表示的是一个字符的数据,不需要转换类型。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中的字节,字符输出流与字节和字符输入流的简单理解 - Python技术站