gpt4 book ai didi

android - FTP 添加了额外的字符

转载 作者:行者123 更新时间:2023-11-29 22:19:38 26 4
gpt4 key购买 nike

我有一个 instream,它从 Android 2.2 手机上的蓝牙接收原始二进制数据。传入的数据进入大小为 1024 的缓冲区。我读取()数据,然后将其写入文件。我通过 FTP 将该文件发送到我的计算机。当 ftp 时,我注意到一个令人不安的模式,每隔一段时间就会插​​入一个额外的字符。所以我首先将缓冲区打印到 LogCat 并注意到该字符不存在。这是我的读写代码。

FTPClient con = new FTPClient();
File file = new File(Environment.getExternalStorageDirectory() + "/ftp/new/" + "testdata.bin");

try {
con.connect("someIPAddress");
if (con.login("anonymous", "anonymous@anon.com")) {
con.enterLocalPassiveMode(); // important!

FileInputStream in = new FileInputStream(file);
boolean result = con.storeFile("testdata.bin", in);
in.close();
if (result) {
Log.v("upload result", "succeeded");
}
}
} catch (Exception e) {e.printStackTrace();}

这是 logcat 的输出示例:

09 15 D0 0D 17 0A 06 08 07

这是 ftp 后文件中的内容:

09 15 D0 0D 17 0D 0A 06 08 07

好吧,我认为嗯 0A 某些东西正在注入(inject) 0D 来制作 (CRLF),但它不会在每个 0A 时都发生。我可以用 C# 编写相同的程序,但这根本不会发生。那么有什么想法或帮助吗?

在进一步调查中,我发现当输入的数据为 17 0A 并且文件显示为 17 0D 0A 时会发生这种情况。

最佳答案

解决方案:默认情况下,FTPClient 将以 ASCII 格式发送文件。使用此命令将文件类型设置为二进制文件:

con.setFileType(FTP.BINARY_FILE_TYPE);

关于android - FTP 添加了额外的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7588625/

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