java读取dbf
时间: 2023-07-18 14:09:34 浏览: 151
要在Java中读取dbf文件,可以使用JavaDBF库。可以先下载JavaDBF库的jar包,并将其添加到项目中。然后可以使用以下代码读取dbf文件:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import com.linuxense.javadbf.*;
public class DBFReader {
public static void main(String[] args) {
// dbf文件路径
String filePath = "example.dbf";
// 字符集
Charset charset = Charset.forName("GBK");
// 读取dbf文件
List<String[]> records = readDBF(filePath, charset);
// 遍历每一条记录
for (String[] record : records) {
// 输出每个字段的值
for (String field : record) {
System.out.print(field + " ");
}
System.out.println();
}
}
public static List<String[]> readDBF(String filePath, Charset charset) {
List<String[]> records = new ArrayList<>();
DBFReader reader = null;
try {
// 打开dbf文件
reader = new DBFReader(new FileInputStream(new File(filePath)), charset);
reader.setCharactersetName(charset.name());
// 获取字段数
int fieldCount = reader.getFieldCount();
// 读取每一条记录
Object[] rowValues;
while ((rowValues = reader.nextRecord()) != null) {
String[] record = new String[fieldCount];
// 获取每个字段的值
for (int i = 0; i < fieldCount; i++) {
record[i] = rowValues[i].toString().trim();
}
records.add(record);
}
} catch (DBFException | IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return records;
}
}
```
其中,example.dbf为要读取的dbf文件名,可以根据实际情况修改。通过遍历每条记录,可以逐条输出dbf文件中的记录。
阅读全文