java - BufferedReader/Writer 使用特殊字符时无法正常工作

标签 java bufferedreader encryption bufferedwriter

我在 Java 中遇到了 CipherBufferedReader/Writer 的小问题。一切正常,如果有人想要我的代码,我可以发布它,如果你愿意的话。问题是,如果我尝试将加密字节转换为字符串(效果很好),然后使用 BufferedWriter 将其写入文件,设置如下:

    FileWriter fwrit = new FileWriter(file);
BufferedWriter buffwrit = new BufferedWriter(fwrit); //The writer itself
String encTextString = new String(encText,"ISO-8859-1"); //The String that gets written later

此设置允许 Writer 写入特殊字符,我认为问题不在这里(如果是,请告诉我)。 (是的,我已经检查过解密而不将其写入文件并再次加载是否有效,并且确实有效。)问题是我无法正确设置 BufferedReader ,有没有办法或其他编写器类型正确读取字符?

最佳答案

来自FileWriter javadoc :

“用于写入字 rune 件的便利类。此类的构造函数假定默认字符编码和默认字节缓冲区大小是可接受的。要自己指定这些值,请在FileOutputStream。”

默认字符集可能是 UTF-8。所以,如果你想编写 ISO-8859-1,你需要这样做:

new OutputStreamWriter(new FileOutputStream(file), Charset.forName("ISO-8859-1"))

更重要的是,如果您的目标是将编码字节不加更改地放入文件中,那么...

FileWriter 用于写入字符流。要写入原始字节流,请考虑使用 FileOutputStream。”

关于java - BufferedReader/Writer 使用特殊字符时无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20546302/

相关文章:

java - 选择包含有关智能手机信息以及其他数据的条目

java - 无法求负数的平方根

java - Spring security - 错误导致性能问题

java - 我的 JsonReader 类被终止而不打印任何输出

security - 如何保障小数据的数据安全?

java - View.getView() 返回 null

java - 将 BufferedReader 转换为 InputStream

java - 按行合并两个文档

go - Go 运行时中的中间轮 AES 加密是如何工作的?

ios - 带有 openssl 加密数据的 NSString initWithBytes 使用 NSUTF8StringEncoding 返回 nil