导航:首页 > 编程语言 > java读取dbf

java读取dbf

发布时间:2022-07-29 18:19:22

A. 如何读取.dbf文件

对于dbf是什么文件,我想一些朋友都不太注意,因为接触的很少,除非是一些整天编程的朋友,或者是一些专 门 研究相关文件的朋友才会有所关注。简单地讲DBF就是一个格式,这个格式是存储数据用的,因此dbf文件也叫做数据库格式文件。

一、 dbf格式的来源

到底哪些软件会应用到这样的格式呢?像Foxbase,Dbase,Visual FoxPro等这些数据库的处理系统都会需要这种格式的文件。也可以这么说,DBF格式的数据库类型是我们经常会用到的一种桌面型的数据库模式。它是一种结构化的标准格式,主要适用于数据存取的功能,在商业里面应用的比较多一些。

dbf是什么文件?它对于各个企业的关系是怎样的呢?其实这种格式文件是数据交换工具,被广泛的在各企业以及各个事业单位里面使用。

二、dbf文件的读取

那么我们如何读取这样的文件呢?DBFViewerPlus1.67,DBF表查看器,这个软件可以很好的很方便的查看以及编辑相关的DBF文件。这个软件能够轻而易举的搜索以及筛选数据库里面的字段值。此外除了这一款软件之外,还有DataBaseBrowser数据库浏览器。这个软件也是可以查询数据库资料的一种工具类的软件。它既可以让我们看到数据库的结构,也可以让我们查看到相关的数据。此外一些数据库信息,表索引也可以查看得到。

打开这类dbf文件我们也可以用excel打开,ACCESS也能够打开这类数据库文件。

B. java如何输入输出DBF格式文件

我建议用Microsoft Access建库,导入数据为表,修改库结构(字段)属性,再导出DBF文件!另外还有一个比较好的的方法: 打开 FOXPRO,选择开始菜单中的导入,就可以了,数据库结构不用修改

C. java如何操作DBF文件

ml页面的一个链接中。这样做的缺点是把文件在服务器上的路径暴露了,并且还无法对文件下载进行其它的控制(如权限)。这个就不写示例了。

2.在服务器端把文件转换成输出流,写入到response,以response把文件带到浏览器,由浏览器来提示用户是否愿意保存文件到本地。(示例如下)

<%
response.setContentType(fileminitype);
response.setHeader("Location",filename);
response.setHeader("Cache-Control", "max-age=" + cacheTime);
//filename应该是编码后的(utf-8)
response.setHeader("Content-Disposition", "attachment; filename=" + filename);

response.setContentLength(filelength);
OutputStream outputStream = response.getOutputStream();
InputStream inputStream = new FileInputStream(filepath);
byte[] buffer = new byte[1024];
int i = -1;
while ((i = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, i);
}
outputStream.flush();
outputStream.close();
inputStream.close();
outputStream = null;

%>

3.既然是JSP的话,还有一种方式就是用Applet来实现文件的下载。不过客户首先得信任你的这个Applet小程序,由这个程序来接受由servlet发送来的数据流,并写入到本地。

servlet端示例

public void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType(" text/plain ");
OutputStream outputStream = null;
try {
outputStream = res.getOutputStream();
//把文件路径为srcFile的文件写入outputStream中
popFile(srcFile, outputStream)) ;

} catch (IOException e) {
e.printStackTrace();
}
}

JApplet端示例

URLConnection con;
try {
//url是被调用的SERVLET的网址 如 *.do
con = url.openConnection();
con.setUseCaches(false);
con.setDoInput(true);
con.setDoOutput(true);
con.setRequestProperty("Content-Type",
"application/octet-stream");
InputStream in = con.getInputStream();
ProgressMonitorInputStream pmInputStream = new ProgressMonitorInputStream
(pane, "正在从服务器下载文件内容", in);
ProgressMonitor pMonitor = pmInputStream.getProgressMonitor();
pMonitor.setMillisToDecideToPopup(3);
pMonitor.setMillisToPopup(3);
//localfilepath本地路径,localstr文件文件夹,filename本地文件名
String localfilepath = localstr + filename ;
//方法saveFilsaveFilee是把输入流pmInputStream写到文件localfilepath中
if(saveFilsaveFilee(localfilepath,pmInputStream)){
openLocalFile(localfilepath);
}

4.顺便把JApplet上传文件的代码也贴上来.

JApplet端示例

URLConnection con;
try {
con = url.openConnection();
//url是被调用的SERVLET的网址 如 *.do
con.setUseCaches(false);
con.setDoInput(true);
con.setDoOutput(true);
con.setRequestProperty("Content-Type","application/octet-stream");
OutputStream out = con.getOutputStream();
//localfilepath本地路径,localstr文件文件夹,filename本地文件名
String localfilepath = localstr + filename;
//文件getOutputStream是把文件localfilepath写到输出流out中
getOutputStream(localfilepath,out);
InputStream in = con.getInputStream();
return true;
}catch (IOException e) {
System.out.println("文件上传出错!");
e.printStackTrace();
}

servlet端代码示例

public void service(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException {
res.setContentType(" text/plain ");
InputStream inputStream = null;
try {
inputStream = res.getInputStream();
//把输入流inputStream保存到文件路径为srcFile的文件中
writefile(srcFile, inputStream);
} catch (IOException e) {
e.printStackTrace();
}
} // end service

总结:在文件的传输中是流的形式存在的,在硬盘上是文件的形式存在的。我们要做的只是通过HttpServletRequest和HttpServletResponse,或者是response和request来发送流和读取流。以及把文件转换成流或把流转换成文件的操作。

D. java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

只能是驱动有问题 ,可能是驱动不兼容,

E. java连接dbf,执行sql语句的时候提示找不到文件,请看

通过看你写的代码中发现,驱动已经找到,并且数据也连接正常,请检查表是否存在,你打开数据库看下,是不是有这个表。

F. java本身可以读取什么文件

文件流。或者是通过代码编写,可以读取大部分的外部文件。
如果想要读取机器中的东西,需要做详细的code才行。

G. java读取dbf文件时,程序跑到dbfreader.nextRecord();时报错com.linuxense.javadbf.DBFException: Failed

应该是 字符串解析成数值型出错吧。 你可以看看dbf文件里的内容是否有问题。

H. java解析dbf格式时里面数据类型怎么判断

使用JDBC-ODBC桥接方式读取Access文件,使用Acces
与DBF都需要配置桥接模式,在控制面板里,选择管理工具里配置

  • Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动

  • try{

  • //conn=DriverManager.getConnection(DB_URL);

  • conn=DriverManager.getConnection("jdbc:odbc:ss","test.dbf","");//无密码则空字符串

  • pstm=conn.prepareStatement("select*fromtest");//此处的XXB为DBF数据文件的名字

  • rs=pstm.executeQuery();



  • 至此,完美解决DBF数据库文件读取。网上的东西,太杂了,所以,我们要理智判断,取其精华,去其糟粕,为我所用。

    终于被我找到了!
    完全free的: com/ 这个网站主要是做数据库连接中间介的,其中用到了一个他们自己开发的叫做JDBF的项目,该项目就是专门控制dbf文件的,整个包只有30K大小,你们随便用个工具反编译一下就可以看懂里面的代码,很简单,就是按照具体格式处理文件!(注意,不是使用JDBC连接的。)
    不过我试了一下,发现只支持三中格式的:foxpro2.x、DBase IV、DBase III。
    大家用得着的话可以去那里下载! 有问题的话可以再来问我。

    我发现国外的这类开源网站很多,国内的就少得可怜了!唉!

    I. 如何用java操作.dbf数据库

    1.引入javadbf.4.1.jar
    2.
    import com.linuxense.javadbf.DBFField;
    import com.linuxense.javadbf.DBFReader;
    3.实例
    package com.realhope.jdbf;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import com.linuxense.javadbf.DBFField;
    import com.linuxense.javadbf.DBFReader;
    public class readDBF {
    public static void readDBF(String path) {
    InputStream fis = null;
    try {
    // 读取文件的输入流
    fis = new FileInputStream(path);
    // 根据输入流初始化一个DBFReader实例,用来读取DBF文件信息
    DBFReader reader = new DBFReader(fis);
    // 调用DBFReader对实例方法得到path文件中字段的个数
    int fieldsCount = reader.getFieldCount();
    // 取出字段信息
    for (int i = 0; i < fieldsCount; i++) {
    DBFField field = reader.getField(i);
    System.out.print(field.getName());
    }
    Object[] rowValues;
    // 一条条取出path文件中记录 rowValues.length;
    while ((rowValues = reader.nextRecord()) != null) {
    for (int i = 0; i < rowValues.length; i++) {
    System.out.println(rowValues[i]);
    }
    }
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    fis.close();
    } catch (Exception e) {
    }
    }
    }

    public static void main(String[] args) {
    readDBF.readDBF("Y:/dbf/01-04-2013/sjshq.DBF");
    }
    }

    阅读全文

    与java读取dbf相关的资料

    热点内容
    程序员看过来我想静静搞笑视频 浏览:370
    curlphp爬虫 浏览:872
    python按日期循环 浏览:108
    php三个等号 浏览:758
    培训班出来的程序员解决问题很差 浏览:961
    程序员那么可爱25集 浏览:753
    服务器地址和ip地址一样不 浏览:664
    php中括号定义数组 浏览:602
    php打印堆栈 浏览:516
    华为adb命令行刷机 浏览:965
    人像摄影pdf 浏览:761
    解压文件密码怎样重新设置手机 浏览:1001
    高考指南pdf 浏览:695
    爬虫python数据存储 浏览:240
    u盘怎么取消加密 浏览:431
    567除以98的简便算法 浏览:342
    pdf手机如何解压 浏览:21
    python描述器 浏览:60
    战地联盟3解压密码 浏览:805
    s型命令 浏览:25