Java 超详细讲解字符流
什么是字符流
在Java中,字节流常常用来处理二进制数据(如图片、音频等),而字符流则使用在处理文本数据(如txt文件等)。不同于字节流,字符流是基于16位Unicode编码的字符来处理数据的。
Java中提供了两类字符流:Reader
和Writer
。Reader
用于读取字符流,Writer
用于写入字符流。
字符流的工作方式
字符流会将字符通过字符映射表映射成对应的数字,然后写入输出流。反之,将读入的数字通过映射表映射成对应的字符,供程序使用。
Java字符流的语法
字符流的语法格式如下:
Reader reader = new FileReader("file.txt");
Writer writer = new FileWriter("file.txt");
其中,Reader
和Writer
可以替换成其他字符流对象。例如:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
Java字符流的常用方法
常用的字符流方法如下:
读取字符流
int read()
: 读取单个字符int read(char[] cbuf)
: 读取整个字符数组int read(char[] cbuf, int off, int len)
: 读取字符数组的一部分
写入字符流
void write(int c)
: 将单个字符写入void write(char[] cbuf)
: 将整个字符数组写入void write(char[] cbuf, int off, int len)
: 将字符数组的一部分写入void write(String str)
: 将字符串写入
Java字符流的示例
示例1:读取文件中的数据
假设我们有一个文件file.txt
,里面包含了以下内容:
Hello World!
Welcome to Java!
我们可以使用如下代码来读取文件中的文本:
try {
FileReader reader = new FileReader("file.txt");
int data;
while ((data = reader.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
输出结果如下:
Hello World!
Welcome to Java!
示例2:写入数据到文件中
我们可以使用如下代码将字符串写入到文件file.txt
中:
try {
FileWriter writer = new FileWriter("file.txt");
writer.write("Hello World!\n");
writer.write("Welcome to Java!");
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
注意,我们使用\n
来表示换行符。运行上面的代码后,文件file.txt
中的内容将会变为:
Hello World!
Welcome to Java!
小结
通过本文的学习,我们了解了Java字符流的基本概念、语法、常用方法和示例。需要注意的是,在使用字符流时,一定要注意字符编码的问题,尤其是在涉及到中文字符时。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 超详细讲解字符流 - Python技术站