Java:将数组写入文本文件不一致

标签 java file-io

对于一个类(class)项目,我和一个小组一直在开发一个应用程序,该应用程序从文本文件中读取文本行,并可以对其进行加密、解密(均使用 DES)并计算 MD5 哈希值。该程序读取文本并对其进行很好的加密,将现在加密的字符串数组按照读取的顺序逐行写回到文本文件中,并包含所有必需的回车符。

然而,在解密这些字符串时,程序将明文全部写入文件一行,没有空格或回车符。加密和解密方法都使用相同的 fileWrite 类,该类使用缓冲写入器。我添加了一个 System.out.println 语句用于调试目的,以打印正在加密和解密的数组内容以检查存储中的错误,但我找不到任何错误。

即使我人为地用“\n”符号插入回车,文本文件解密后还是一行。我一生都无法弄清楚为什么同一个类(Class)在不同的时间会有两种不同的行为方式。将数组写入文件的代码非常简单,只是逐个元素地进行,可能并不需要真正包含在内,但无论如何都是如此。

    for(int i=0;i<s.length;i++){
    bufferedWriter.write(s[i]);             
    }

据我所知,该问题可能源于 java 和记事本处理新行的方式不同。当它从文件中读取明文字符串时,我假设它从文本文件中接收换行符并以这种方式打印出加密文本,但这里 java 表示新行与文件中原来的行不同,当这些加密行被读取和处理时,导致这个间距问题,但同样,我不太确定,这就是我在这里的原因。任何帮助将不胜感激。

最佳答案

如果可以的话,尝试使用 PrintWritter,使用 println() 方法。

我相信 write() 方法不会更改行,您可以使用 newLine() 方法强制执行此操作。

还要注意,从文件读取时,大多数方法不会返回换行符。

关于Java:将数组写入文本文件不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4440346/

相关文章:

java - 如何放心认证?

java - JSP页面显示数据时出现java.lang.NumberFormatException

java - 从 java 提交 HTML 表单需要 cookies 和弹出窗口拦截器

java - Hibernate - 如何通过 Hibernate 将 java.net.URL 存储到数据库中

java - Spring Data Neo4j : ConversionFailedException: Failed to convert from type java. lang.String 为值键入字节

file-io - 用Lua检查文件是否存在

c - 如何删除 C 中 FILE* 指向的文件?

java - 读/写具有特殊字符的 .txt 文件

c++ - 如何使用 Windows API WriteFile 将 ASCII 字符串写入文件?

java - 用户自定义文件读取函数导致NullPointerException Java