我正在使用 Java 生成文件,但在不同的查看器中打开时无法正确格式化。给出不同输出的程序是WordPad
和NotePad
。
控制台中程序的输出格式都很好。此外,当我查看其中的文件时,WordPad
它的格式也很好。但是当我打开文件时NotePad
,一切都混乱了。
它在记事本中看起来非常糟糕,我讨厌最终用户在记事本中打开它看到一团糟。
有没有办法在 Java 中正确格式化文本,以便任何文本阅读器都能按照我的预期呈现它?
我String.format()
用来格式化我的字符串。
编辑:这是我用来写出信息的一些核心代码。
private void retrieveOrderInfo(ArrayList<String> order) {
int row = orderTable.getRowCount();
String descr[] = new String[row];
double price[] = new double[row];
String info;
readOrderTable(descr, price);
for (int i = 0; i < row; i++) {
info = String.format(" %-45s %-20.1f ", descr[i], price[i]);
order.add(info);
}
}
private void writeString(String path, String info, boolean line) {
DataRW write = new DataRW();
write.writeFileExternal(path, info, line);
}
这是在我的 DataRW 课程中。
public void writeFileExternal(String fileName, String info, boolean line) {
BufferedWriter bwriter = null;
try {
FileWriter fwriter = new FileWriter(fileName, true);
bwriter = new BufferedWriter(fwriter);
bwriter.write(info);
if (line) {
bwriter.newLine();
}
bwriter.flush();
} catch (IOException e) {
//e.printStackTrace();
//System.out.println("Could note write to " + fileName);
errorMessageNotify("writeexternalfile", fileName);
} finally {
if (bwriter != null) {
try {
bwriter.close();
} catch (IOException e) {
//Just ignore if couldnt close
}
}
}
}
所以我得到了信息,然后用这些方法调用把它写出来。
编辑:图片链接 http://i1248.photobucket.com/albums/hh489/EberronBruce/NotepadDemo_zpsangaprji.jpg
http://i1248.photobucket.com/albums/hh489/EberronBruce/wordpad_zpscbu0adkb.jpg
以下是图片的链接来描述我的意思。我没有足够的声誉点来直接发布图像。
我真的很感激所有的帮助。很长时间以来,我一直在努力解决这个问题。我尝试使用 \t 并调整格式以使其看起来正确,但是一旦我让它在记事本下看起来正确,它就会在写字板、MS Word 和 FireFox 中消失。