gpt4 book ai didi

java - 如何修复 Java 中文本文件的写字板和记事本格式差异?

转载 作者:行者123 更新时间:2023-12-01 11:38:56 25 4
gpt4 key购买 nike

我正在使用 Java 生成文件,但在不同的查看器中打开时无法获得正确的格式。提供不同输出的程序是 WordPadNotePad

控制台中程序的输出格式正确。此外,当我在 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 类(class)中。

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 中看起来不正确。

最佳答案

我猜测生成的代码使用了 UNIX 换行符。写字板在 UNIX 换行符处中断。记事本没有。

如果您希望操作系统正确中断,请使用 System.getProperty("line.separator")

编辑:现在我们有了屏幕截图,我可以说你的问题出在记事本上。将字体更改为固定宽度字体,例如 Courier,您的数据将正确对齐。

关于java - 如何修复 Java 中文本文件的写字板和记事本格式差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29713461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com