// 显式指定UTF-8编码 Reader reader = new InputStreamReader(new FileInputStream("file.txt"), "UTF-8");
public class FileCharCopy {
public static void main(String[] args) {
try (Reader reader = new FileReader("source.txt");
Writer writer = new FileWriter("target.txt")) {
char[] buffer = new char[1024];
int charsRead;
while ((charsRead = reader.read(buffer)) != -1) {
writer.write(buffer, 0, charsRead);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
try (FileChannel channel = FileChannel.open(Paths.get("hugefile.txt"), StandardOpenOption.READ)) {
MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
CharsetDecoder decoder = StandardCharsets.UTF_8.newDecoder();
CharBuffer charBuffer = decoder.decode(buffer);
// 处理字符数据
while (charBuffer.hasRemaining()) {
processChar(charBuffer.get());
}
}
你可能想看: