如何从 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的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Jackcess 选择列

使用 iso-8859-1 在 wildfly 中打开 ucanaccess/jackcess 数据库

如何将 Jackcess 及其依赖项导入 Eclipse?

Jackcess 可以与 MS Access 2013 一起使用吗?

如何在mac上打开FTP服务

ftp如何从网页登陆?