我在数据库中有包含\ n。
的记录NAME | ROW | COL
-------------------------------
name | 1 | 1
address | 1 | 2
tel\n no | 1 | 3
employeed\n id | 1 | 4
然后,我还在数据库(\ t)
中保存我的分隔符,用于文本编写DELIMITER | FILENAME_LOCATIO
----------------------
\t | SAMPLETEXT
然后,当我已经想要将这些值(第一个表)写入文本文件时,它会像这样打印..它不识别转义字符,而是打印为普通文本
name\taddress\ttelno\n no\temployeed\n id
文本文件应如下所示..
name address telno
no employeed
id
以下是使用..
的代码FileWriter fw = new FileWriter(config.get("FILENAME_LOCATION").toString(), true);
BufferedWriter w = new BufferedWriter(fw);
List<Map<String, Object>> headers = sampleMapper.selectHeader();
for (Iterator<Map<String, Object>> iterator = headers.iterator(); iterator.hasNext();) {
Map<String, Object> map = (Map<String, Object>) iterator.next();
w.write(map.get("NAME").toString());
w.write(config.get("DELIMITER").toString()); // returns \t in String format
}
w.close();
答案 0 :(得分:0)
这可能取决于您运行应用程序的操作系统,至少对于行分隔符。
try (BufferedWriter w = new BufferedWriter(new FileWriter("c:\\test.txt", false)))
{
w.write("hello");
w.write("\t");
w.write("hello");
w.write(System.getProperty("line.separator"));
w.write("world");
w.write("\t");
w.write("world");
}
catch (IOException e)
{
e.printStackTrace();
}
此代码在我的Windows上运行正常,因为系统属性将为您提供正确的分隔符(在Windows上,它为\r\n
)。
根据this question,\t
应该有效,而且对我有用。可能是您的配置没有为您提供标签,但"\\t"
表示文字\
和t
。在这种情况下,您可以在数据库中存储ascii char for tab而不是\t
。