dbf中文乱码

reader.setCharactersetName("GB2312");



public class Rwdbf {


public static void readDBF(String path)


{


InputStream fis = null;
try {
// 读取文件的输入流
fis = new FileInputStream(path);
// 根据输入流初始化一个DBFReader实例,用来读取DBF文件信息
DBFReader reader = new DBFReader(fis);
reader.setCharactersetName("GB2312");
// 调用DBFReader对实例方法得到path文件中字段的个数
int fieldsCount = reader.getFieldCount();
System.out.println("字段数:" + fieldsCount);
// 取出字段信息
// for (int i = 0; i < fieldsCount; i++) {
// DBFField field = reader.getField(i);
// System.out.println(field.getName());
// }
System.out.println("-----------");
Object[] rowValues;
// 一条条取出path文件中记录
rowValues = reader.nextRecord();
if ((rowValues = reader.nextRecord()) != null) {
for (int i = 0; i < rowValues.length; i++) {
System.out.println(rowValues[i]);
}
}
System.out.println("-----------");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fis.close();
} catch (Exception e) {
}
}
}


public static void main(String[] args) {
Rwdbf dbf=new Rwdbf();
dbf.readDBF("./src/sjsxxn.dbf");

// String path = "E:\\tmp\\2\\xx.dbf";
// try {
// InputStream fis = new FileInputStream(path);
// DBFReader reader = new DBFReader(fis);
// int fieldsCount = reader.getFieldCount();
// System.out.println("字段数:" + fieldsCount);
//
// DBFField[] df = new DBFField[fieldsCount + 2];
// for (int i = 0; i < fieldsCount; i++) {
// df[i] = reader.getField(i);
// System.out.println("field" + i + ":" + df[i].getName());
// }
// df[fieldsCount] = new DBFField();
// df[fieldsCount].setName("add1");
// df[fieldsCount].setDataType(DBFField.FIELD_TYPE_C);
// df[fieldsCount].setFieldLength(10);
// df[fieldsCount + 1] = new DBFField();
// df[fieldsCount + 1].setName("add2");
// df[fieldsCount + 1].setDataType(DBFField.FIELD_TYPE_C);
// df[fieldsCount + 1].setFieldLength(10);
//
//
// System.out.println("OVER");


// } catch (FileNotFoundException | DBFException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值