我正在尝试通过阅读文本文件中的内容来发送邮件。
文件我正在尝试阅读
Line 1
Line 2
Line 3
我已经使用JUnit测试了代码,我得到的邮件格式与文本文件相同。
使用Junit输出邮件
Line 1
Line 2
Line 3
但是当部署在Tomcat中时,我会收到包含该文本的邮件,但新行未被识别。
使用tomcat服务器时输出邮件
Line 1Line 2Line 3
我用来读取文件内容的代码。
private String readFile(String pathname) throws IOException {
File file = new File(pathname);
StringBuilder fileContents = new StringBuilder((int) file.length());
Scanner scanner = new Scanner(file);
String lineSeparator = System.getProperty("line.separator");
try {
while (scanner.hasNextLine()) {
fileContents.append(scanner.nextLine() + lineSeparator);
}
return fileContents.toString();
} finally {
scanner.close();
}
}
我已将服务器置于调试模式,我可以看到新行被追加到fileContents.toString()
我不确定我错过了什么。什么与字符集有关?我不确定......
答案 0 :(得分:1)
它与Perception和nullix的线索有关。如何阅读邮件和HTML。
在我的情况下,我通过从邮件客户端发送邮件进行测试,邮件客户端向我的应用程序发送“text / html”类型的邮件。因此,当我回复该邮件时,回复邮件也是“text / html”格式。因此, / n 或我使用过的任何换行类型都被省略了。
因此,在阅读邮件时,我只阅读“text / plain” mime类型。因此,在回复此邮件时,我可以打印新行。
答案 1 :(得分:0)
也许您正在阅读邮件输出的方式让您认为新行不存在。例如,如果您将'\ n'作为换行符编写,并在Windows记事本上打开该文件,则看起来好像换行符不在那里。
使用更复杂的文本查看器,如Notepad ++,您可以在其中查看空白字符可能有帮助