【发布时间】:2012-03-31 13:11:33
【问题描述】:
我目前正在使用此代码通过 ftp 发送数据库(使用 apache commons)
File file = getDatabasePath("database");
FTPClient ftp = new FTPClient();
try {
ftp.connect(InetAddress.getByName(domain));
ftp.login(username, password);
ftp.setFileType(FTP.BINARY_FILE_TYPE);
FileInputStream is = new FileInputStream(file);
BufferedInputStream buffIn = new BufferedInputStream(is);
ftp.enterLocalPassiveMode();
ftp.storeFile("database", buffIn);
buffIn.close();
ftp.logout();
ftp.disconnect();
} catch (Exception e) {
// TODO: handle exception
}
我用它来发送一个文本文件,它可以工作。但是,我已经用我的数据库进行了尝试,并且在服务器上放置了一个相同大小的文件,但是当我打开 SQLite 浏览器时,它什么也不显示。它适用于一个非常小的数据库,但一旦数据库更大,我就会遇到这个问题。
我想知道这是否与缓冲区大小有关?谁能解释一下为什么会这样?
谢谢
【问题讨论】:
-
查看官方文档:commons.apache.org/net/api-3.1/org/apache/commons/net/ftp/…也许你会发现你错过的东西(例如你从不检查服务器的回复代码,这可能会给你信息)。如果您可以直接访问 FTP,请查看日志文件 - 它们会告诉您一切。
标签: java android sqlite apache-commons bufferedinputstream