今天给各位分享java获取dbf文件总数的知识,其中也会对java生成dbf文件进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、Java读写dbf文件2、java程序如何读取dbf文件? 最好写上代码?3、如何获取dbf文件中表的数量
Java读写dbf文件
Java读取DBF文件,需要加载开源jar包JavaDBF.jar,然后使用里面的方法进行读写,示例如下:
package search;
public class ReadDBF {
public static void main(String args[])
{
readDBF();
}
private static void readDBF()
{
try
{
System.out.println(“正在读取文件!”);
DBFReader dbfreader = new DBFReader(“D:\\ZG2011格式.dbf”);
for(int b = 0;bdbfreader.getFieldCount();b++)
{
if(b0)
{ System.out.print(“,”);}
System.out.print(dbfreader.getField(b).getName().trim().toUpperCase());
if(b == (dbfreader.getFieldCount()-1))
System.out.print(“\n”);
}
for(int i = 0;dbfreader.hasNextRecord();i++)
{
String[] aobj = dbfreader.nextRecordString();
for(int b = 0;bdbfreader.getFieldCount();b++)
{
if(b0)
System.out.print(“,”);
System.out.print(aobj[b].trim());
if(b == (dbfreader.getFieldCount()-1))
System.out.print(“\n”);
}
}
System.out.println(“读取文件成功!”);
}
catch(Exception e)
{
System.out.print(e.getMessage());
}
}
}
java程序如何读取dbf文件? 最好写上代码?
public class Rwdbf {
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();
System.out.println(“字段数:”+fieldsCount);
//取出字段信息
for( int i=0; ifieldsCount; i++)
{
DBFField field = reader.getField(i);
System.out.println(field.getName());
}
Object[] rowValues;
//一条条取出path文件中记录
while((rowValues = reader.nextRecord()) != null)
{
for( int i=0; irowValues.length; i++)
{
System.out.println(rowValues[i]);
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try{
fis.close();
}catch(Exception e){}
}
}
public static void writeDBF(String path)
{
OutputStream fos = null;
try
{
//定义DBF文件字段
DBFField[] fields = new DBFField[3];
//分别定义各个字段信息,setFieldName和setName作用相同,
//只是setFieldName已经不建议使用
fields[0] = new DBFField();
//fields[0].setFieldName(“emp_code”);
fields[0].setName(“semp_code”);
fields[0].setDataType(DBFField.FIELD_TYPE_C);
fields[0].setFieldLength(10);
fields[1] = new DBFField();
//fields[1].setFieldName(“emp_name”);
fields[1].setName(“emp_name”);
fields[1].setDataType(DBFField.FIELD_TYPE_C);
fields[1].setFieldLength(20);
fields[2] = new DBFField();
//fields[2].setFieldName(“salary”);
fields[2].setName(“salary”);
fields[2].setDataType(DBFField.FIELD_TYPE_N);
fields[2].setFieldLength(12);
fields[2].setDecimalCount(2);
//DBFWriter writer = new DBFWriter(new File(path));
//定义DBFWriter实例用来写DBF文件
DBFWriter writer = new DBFWriter();
//把字段信息写入DBFWriter实例,即定义表结构
writer.setFields(fields);
//一条条的写入记录
Object[] rowData = new Object[3];
rowData[0] = “1000”;
rowData[1] = “John”;
rowData[2] = new Double(5000.00);
writer.addRecord(rowData);
rowData = new Object[3];
rowData[0] = “1001”;
rowData[1] = “Lalit”;
rowData[2] = new Double(3400.00);
writer.addRecord(rowData);
rowData = new Object[3];
rowData[0] = “1002”;
rowData[1] = “Rohit”;
rowData[2] = new Double(7350.00);
writer.addRecord(rowData);
//定义输出流,并关联的一个文件
fos = new FileOutputStream(path);
//写入数据
writer.write(fos);
//writer.write();
}catch(Exception e)
{
e.printStackTrace();
}
finally
{
try{
fos.close();
}catch(Exception e){}
}
}
public static void main(String[] args){
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; ifieldsCount; 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);
DBFWriter writer = new DBFWriter();
writer.setFields(df);
Object[] rowValues;
Object[] rowValues1 = new Object[fieldsCount+2];
//一条条取出path文件中记录
while((rowValues = reader.nextRecord()) != null)
{
for(int i=0;ifieldsCount;i++){
rowValues1[i] = rowValues[i];
}
rowValues1[fieldsCount]=”x”;
rowValues1[fieldsCount+1]=”xx”;
writer.addRecord(rowValues1);
}
path =”E:\\tmp\\2\\test2.dbf”;
OutputStream fos = new FileOutputStream(path);
//写入数据
writer.write(fos);
System.out.println(“OVER”);
} catch (FileNotFoundException | DBFException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
详细出处参考:
如何获取dbf文件中表的数量
方法1:
全选-复制-打开excel-粘贴-另存为-文件格式-dbf-或直接存成.xls
方法2:
如果限制了右健或复制,则:
查看-元文件-找到数据行-选中-复制-打开word-粘贴-转换-文本转换表格。。。
关于java获取dbf文件总数和java生成dbf文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。