我已经在Unix环境中使用Java代码创建了一个文本文件。
我使用java.io.FileWriter
和编写文本文件BufferedWriter
。对于每一行之后的换行符,我正在使用bw.newLine()
方法(其中bw
的对象是BufferedWriter
)。
而且,我通过附加来自Unix环境本身的邮件(使用Unix命令自动执行此操作)来附加该文本文件。
我的问题是,在Windows系统中从邮件下载文本文件后,如果打开该文本文件,数据将无法正确对齐。newline()
角色不起作用,我认为是这样。
如果也要在Windows环境中打开文本文件,我希望与Unix环境中的文本文件对齐相同。
我该如何解决该问题?
以下Java代码供您参考(在Unix环境中运行):
File f = new File(strFileGenLoc);
BufferedWriter bw = new BufferedWriter(new FileWriter(f, false));
rs = stmt.executeQuery("select * from jpdata");
while ( rs.next() ) {
bw.write(rs.getString(1)==null? "":rs.getString(1));
bw.newLine();
}
Java只知道它当前正在运行的平台,因此它只能为您提供该平台上依赖于平台的输出(使用bw.newLine()
)。在Windows系统上打开文件的事实意味着您要么必须在使用文件之前转换文件(使用编写的文件,或者使用诸如unix2dos之类的程序),要么必须使用Windows格式的回车输出文件它最初在您的Java程序中。因此,如果您知道该文件将始终在Windows计算机上打开,则必须输出
bw.write(rs.getString(1)==null? "":rs.getString(1));
bw.write("\r\n");
值得注意的是,如果您使用的只是纯文本格式,您将无法输出在两个平台上看起来都正确的文件;如果是电子邮件,则可能要考虑使用html;如果是电子邮件,则可能要考虑使用xml是数据。或者,您可能需要某种客户端来读取数据,然后将其格式化为查看器正在使用的平台。
问题内容: 我正在编写一个Android应用程序,在其中我将文件写入磁盘,每行一个数据值。以后,可以将此类文件读回应用程序,并将这种简单的数据格式反序列化为数组。目前,我正在使用来描述序列化和反序列化代码中的数据值/行。 Android如何处理回车和此类换行符? 我可以在这种情况下安全使用吗? 问题答案: 更好用
问题内容: 我正在开发一个集成测试应用程序,这就是我在测试用例中所做的事情,我读取了一个测试输入文件,该文件存储在cvs中,将其写入文件系统中的文件中,该应用程序轮询目录以获取文件,处理它并创建输出文件,然后我轮询输出文件的目录,如果两个文件的内容相等,则测试用例成功(我将两个输入文件和输出文件读入字符串并进行比较) 。 问题是该测试用例在Linux系统上运行时失败,原因是从Windows系统中检
问题内容: Java 中回车和换页的含义是什么?谁能举一个简短的例子说明何时必须使用这些类型的符号? 我不知道上面是什么。 我得到的输出是: 我得到了换行和换行的提示,并带有一个框。 问题答案: 您很少在现代应用程序中单独使用它们中的任何一个。 (回车)的含义是, 如果 您熟悉老式的手动打字机:它将“托架”(送纸的纸卷)移回到行的开头。在终端(或类似终端)上,它将输出点移回该行的开头,而无需向下移
问题内容: 我已经尝试过了,但这不起作用。 你怎么做到这一点? (我非常感谢您需要使用类似Java的代码) 谢谢, 问题答案: 根据您的要求: -换行符,除换行符外,前面带有任何字符。这意味着 换行之前必须有一个字符, 并且 两个符号将匹配 。 -没有回车符的换行符。这意味着 只有换行符号会被匹配, 并且只会被测试是否存在(就像后面的否定一样, 零宽度的断言 不会消耗任何文本,但是如果其中的模式在
; TrimNewlines ; 输入,堆栈顶 (例如 whatever$\r$\n) ; 输出,堆栈顶 (替换,例如 whatever) ; 不改变其它变量值。 Function TrimNewlines Exch $R0 Push $R1 Push $R2 StrCpy $R1 0 loop: IntOp $R1 $R1 - 1
问题内容: 我将键值对放入Java中,并使用方法将其转换为。 是否可以将这种表示形式转换回对象并使用其对应的键检索值? 谢谢 问题答案: 这种方法依赖于的实现,并且在大多数情况下可能是有损的。 这里不可能有无损解决方案。但更好的方法是使用对象序列化 将对象序列化为字符串 将字符串反序列化为对象 在此,如果用户对象具有临时字段,则它们将在过程中丢失。 旧答案 一旦使用toString()将HashM