下面我来详细讲解如何使用Java按指定编码写入和读取文件内容的类。
什么是编码?
在计算机中,所有的数据都是以二进制形式存储的,但是人类无法直接读懂所有的二进制数据。为了让计算机能够正确地识别和显示不同的文本,我们需要将文本数据按照一定的规则(即编码)转换为二进制数据存储。
常见的编码方式包括ASCII、Unicode、UTF-8等。每一种编码方式都有其特定的规则和格式。
写入文件
在Java中,如果要按指定编码方式写入文件,我们可以使用下面的代码:
import java.io.*;
public class WriteFileWithEncoding {
public static void main(String[] args) throws Exception {
FileOutputStream fos = new FileOutputStream("test.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
osw.write("Hello, world!");
osw.close();
}
}
上面的代码中,我们使用了两个类:
FileOutputStream
类用于将数据写入文件;OutputStreamWriter
类用于将字符流转换为字节流,并指定编码方式。
在创建OutputStreamWriter
对象时,我们需要传入一个FileOutputStream
对象和一个编码格式。Java中支持的所有编码方式都可以在java.nio.charset.Charset
类中找到。在上面的示例中,我们使用了UTF-8编码方式。
通过这些代码,我们就成功地将字符串“Hello, world!”以UTF-8编码方式写入了文件“test.txt”中。
读取文件
在Java中,如果要按指定编码方式读取文件,我们可以使用下面的代码:
import java.io.*;
public class ReadFileWithEncoding {
public static void main(String[] args) throws Exception {
FileInputStream fis = new FileInputStream("test.txt");
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
}
}
在上面的代码中,我们使用了三个类:
FileInputStream
类用于从文件中读取数据;InputStreamReader
类用于将字节流转换为字符流,并指定编码方式;BufferedReader
类用于读取文件中的数据。
在创建InputStreamReader
对象时,我们需要传入一个FileInputStream
对象和一个编码格式,同样地,我们使用了UTF-8编码方式。
通过这些代码,我们就成功地将文件“test.txt”中的内容以UTF-8编码方式读取出来并打印到控制台上。
示例
假设我们要写入一个包含中文和英文的字符串,并将其保存到文件“test.txt”中。我们可以使用下面的代码:
import java.io.*;
public class WriteFileWithEncoding {
public static void main(String[] args) throws Exception {
FileOutputStream fos = new FileOutputStream("test.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
osw.write("你好,世界!Hello, world!");
osw.close();
}
}
在代码中,我们既包括中文字符“你好,世界!”,也包括英文字符“Hello, world!”,并指定编码方式为UTF-8。
接下来,我们可以用下面的代码来读取包含中文的文件内容:
import java.io.*;
public class ReadFileWithEncoding {
public static void main(String[] args) throws Exception {
FileInputStream fis = new FileInputStream("test.txt");
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
}
}
通过这些代码,我们就成功地读取了包含中文的文件内容,并以UTF-8编码方式显示在控制台上。
这就是如何使用Java按指定编码方式写入和读取文件内容的完整攻略,希望可以对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java按指定编码写入和读取文件内容的类分享 - Python技术站