Java/JSP:从字符串变量写入本地文件时保留换行符
Java/JSP: Preserve line breaks while writing to a local file from string variables
我需要帮助来创建写入文件并保留换行符的读写方法。文件的内容存储在一个变量中。
我使用以下代码读取本地 HTML 文件:
public String scanLocalPage(String filePath) throws IOException
{
try{
BufferedReader reader = new BufferedReader(new FileReader(filePath));
StringBuilder sb = new StringBuilder();
String line;
while((line = reader.readLine())!= null){
sb=sb.append(line);
}
reader.close();
return sb.toString();
}
catch (Exception ee)
{
return "";
}
}
和以下写入文件的方法:
public void writeToFile (String fileName, String fileContents) throws IOException
{
File outFile = new File (fileName);
try (FileWriter fw = new FileWriter(outFile)) {
fw.write(fileContents);
fw.close();
}
}
我使用上述方法从 String 变量读取和写入 HTML 文件和文本文件。 HTML 文件的内容是在代码和文本文件中从文本区域输入字段生成的。
写入文件后再次读取,文件内容缺少换行符。感谢对 read/write 换行符的任何帮助。
当您使用 readline()
时,换行符被删除。您必须使用
重新插入它们
sb = sb.append(line).append("\n");
您应该使用系统相关的行分隔符字符串:
在 UNIX 系统上,它 returns "\n";在 Microsoft Windows 系统上 returns "\r\n".
String newLine = System.getProperty("line.separator");
sb = sb.append(line).append(newLine);
如果您使用 Java 7 或更高版本,您可以使用 System.lineSeparator() 方法。
String newLine = System.lineSeparator();
sb = sb.append(line).append(newLine);
我需要帮助来创建写入文件并保留换行符的读写方法。文件的内容存储在一个变量中。
我使用以下代码读取本地 HTML 文件:
public String scanLocalPage(String filePath) throws IOException
{
try{
BufferedReader reader = new BufferedReader(new FileReader(filePath));
StringBuilder sb = new StringBuilder();
String line;
while((line = reader.readLine())!= null){
sb=sb.append(line);
}
reader.close();
return sb.toString();
}
catch (Exception ee)
{
return "";
}
}
和以下写入文件的方法:
public void writeToFile (String fileName, String fileContents) throws IOException
{
File outFile = new File (fileName);
try (FileWriter fw = new FileWriter(outFile)) {
fw.write(fileContents);
fw.close();
}
}
我使用上述方法从 String 变量读取和写入 HTML 文件和文本文件。 HTML 文件的内容是在代码和文本文件中从文本区域输入字段生成的。
写入文件后再次读取,文件内容缺少换行符。感谢对 read/write 换行符的任何帮助。
当您使用 readline()
时,换行符被删除。您必须使用
sb = sb.append(line).append("\n");
您应该使用系统相关的行分隔符字符串:
在 UNIX 系统上,它 returns "\n";在 Microsoft Windows 系统上 returns "\r\n".
String newLine = System.getProperty("line.separator");
sb = sb.append(line).append(newLine);
如果您使用 Java 7 或更高版本,您可以使用 System.lineSeparator() 方法。
String newLine = System.lineSeparator();
sb = sb.append(line).append(newLine);