gpt4 book ai didi

java.io.File 在写入文件时获取额外的字符

转载 作者:行者123 更新时间:2023-12-01 14:20:15 25 4
gpt4 key购买 nike

为什么我在将以下代码写入文件时会收到额外的字符?如果我使用 writeBytes(String)比下面的代码是工作文件。那么dos.writeChars()有什么问题呢?方法?

File fileObj = new File("student.txt");

try {

// writing into file
FileOutputStream fos = new FileOutputStream(fileObj);
String msg = "This is student file";

DataOutputStream dos = new DataOutputStream(fos);
dos.writeChars(msg);

//reading from file
FileInputStream fis = new FileInputStream(fileObj);
DataInputStream dis = new DataInputStream(fis);

System.out.println(dis.readLine());

for (int i = 0; ((i = dis.read()) != -1); i++) {
System.out.println(i);
}

fos.close();
dos.close();

} catch (FileNotFoundException e) {
System.err.println("File not found!");
} catch (IOException e) {
e.printStackTrace();
}

最佳答案

writeChars() 使用 2 字节字符 (UTF-16)。因此,您写入的每个字符将导致写入两个字节。

如果您想要其他编码,请在 String 上使用 getBytes() 并将其写入字节。

关于java.io.File 在写入文件时获取额外的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17656804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com