【发布时间】:2014-06-23 18:33:17
【问题描述】:
我使用 Apache Commons API 使用 FTPClient 类将新行附加到文件中。当我在 Java 中运行以下代码时,会在 FTP 服务器上的文件中附加一个新行。但是,当我在 Android 中运行相同的代码时,字符串会附加到文件中而没有换行。
为什么Android下使用-System.getProperty("line.separator")的新行不通过FTP传输?
另外,新行在 LogCat 中正确显示,但在 FTP 服务器上的 txt 文件中不起作用。也许Java和Android的字符编码有区别?
非常感谢。
String log = System.getProperty("line.separator") + "blablabla";
boolean done = ftpClient.appendFile("log.txt", new ByteArrayInputStream(log.getBytes("UTF-8")));
System.out.println("LOG: " + log);
【问题讨论】:
-
您是否查看过您在两种情况下从
System.getProperty("line.separator")获得的信息?这几乎是要做的第一件事...... -
在 Java 中,我返回一个长度为 2 的字符串,哈希码为 413。
-
在 Android 中,我得到一个长度为 1 的字符串,哈希码为 10。
-
我可以从中找出使用了哪些行分隔符吗??
-
@用户:你为什么要引用长度和哈希码,而不是实际的字符?但我可以肯定地告诉你,length=2 的那个是
"\r\n"(你必须在 Windows 上这样做),length=1 的那个是"\n"。 (潜伏者:是的,我太迂腐了,我确实仔细检查了匹配的哈希码。)
标签: java android ftp apache-commons-net