如何从 ftp 位置 jackcess 打开 .mdb
Posted
技术标签:
【中文标题】如何从 ftp 位置 jackcess 打开 .mdb【英文标题】:how to open .mdb from ftp location jackcess 【发布时间】:2013-02-23 13:06:24 【问题描述】:大家好,使用此代码我可以成功下载 allpg.mdb 并显示... 现在我想将下载的文件保存到 c:/folder....
如果我编辑
dbTempFile = File.createTempFile("dbTempFile",".mdb"); to
dbTempFile = File.createTempFile("c:/dbTempFile",".mdb"); than it give : The filename, directory name, or volume label syntax is incorrect error.
我只想将下载的文件保存到本地驱动器的任何位置。
代码如下:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.Table;
public class DownloadFile
public static void main(String[] args) throws Exception
FTPClient client = new FTPClient();
File dbTempFile=null;
FileOutputStream fileOutputStream = null;
try
client.connect("ftp.mypak.com");
client.login("myid", "mypwd");
client.setFileType(FTPClient.BINARY_FILE_TYPE);
dbTempFile = File.createTempFile("dbTempFile",".mdb");
fileOutputStream = new FileOutputStream(dbTempFile);
client.retrieveFile("/HASSAN/MDMSTATS/allpg.mdb", fileOutputStream);
catch (IOException ex)
ex.printStackTrace();
finally
try
if (fileOutputStream != null)
fileOutputStream.close();
System.out.println("got");
Table table = Database.open(dbTempFile).getTable("items");
System.out.println(table.display());
System.out.println("got");
client.disconnect();
catch (IOException ex)
ex.printStackTrace();
【问题讨论】:
【参考方案1】:您没有为 Jackcess 构造函数提供正确的文件名。应该是:
Table table = Database.open(dbTempFile).getTable("items");
【讨论】:
表表 = Database.open(dbTempFile).getTable("items");它给出了错误:局部变量 dbTempFile 可能尚未初始化 @user2058260 - 我猜你正在破坏数据库。请确保您已成功下载文件。使用 ftp 时的一个常见错误来源是未使用“二进制”模式。 @jtahlborn- 现在代码工作正常,你能告诉我这个文件是在哪个位置下载的,以便我可以进一步访问。 基本上我想下载一个 csv 文件,然后用 Database.open(new File("c:/MDMSTATS/APEX/APEXCONV.mdb")).importFile("items", new File("c:/MDMSTATS/APEX/testreport_pakistan.csv"), ","); 所以我需要转换 csv 文件的位置以上是关于如何从 ftp 位置 jackcess 打开 .mdb的主要内容,如果未能解决你的问题,请参考以下文章
使用 iso-8859-1 在 wildfly 中打开 ucanaccess/jackcess 数据库