我有一個靜態流從Android 2.2手機上的藍牙接收原始二進制數據。進入的數據進入緩衝區1024的大小。我讀取()數據,然後把它寫入文件。我通過FTP將該文件發送到我的電腦。當ftp'ing一段時間插入一個額外的字符時,我注意到了一個令人不安的模式。所以我先將緩衝區打印到LogCat中,注意到這個字符不在那裏。這是我讀的寫代碼。FTP增加了額外的字符
FTPClient con = new FTPClient();
File file = new File(Environment.getExternalStorageDirectory() + "/ftp/new/" + "testdata.bin");
try {
con.connect("someIPAddress");
if (con.login("anonymous", "[email protected]")) {
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'ing後:
09 15 D0 0D 17 0D 0A 06 08 07
嗯,我認爲嗯0A是注入0D來製造(CRLF),但它不會在每個0A發生。我可以用C#編寫相同的程序,而這完全不會發生。那麼任何想法或幫助?
在進一步的調查中,我發現它發生時,數據進入是17 0A和文件顯示17 0D 0A。
不是一個真正的答案,而是一個聲明,你有解決方案的上述代碼? – JPM