dbf中文乱码

来源:互联网 发布:北大出版社《最优化》 编辑:程序博客网 时间:2024/06/06 03:16

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 0
原创粉丝点击