/** * dbf文件 */ public static final String DBF_FILE = "/Users/guanxianghui/Desktop/user.dbf"; /** * 测试写文件-FileOutputStream-覆盖文件列+数据 */ @Test public void testWrite1() { System.out.println("[测试写文件-FileOutputStream-覆盖文件列+数据]"); System.out.println("DBF文件路径:[" + DBF_FILE + "]"); /** * 定义列 */ DBFField[] fields = new DBFField[3]; fields[0] = new DBFField(); fields[0].setName("COUNTRY"); fields[0].setType(DBFDataType.CHARACTER); fields[0].setLength(10); fields[1] = new DBFField(); fields[1].setName("NAME"); fields[1].setType(DBFDataType.CHARACTER); fields[1].setLength(20); fields[2] = new DBFField(); fields[2].setName("SALARY"); fields[2].setType(DBFDataType.NUMERIC); fields[2].setLength(12); fields[2].setDecimalCount(2); DBFWriter writer = null; System.out.println("设置列,并输出数据到文件"); System.out.println("========="); try { /** * 输出到文件 */ writer = new DBFWriter(new FileOutputStream(DBF_FILE), Charset.forName("GBK"));//注意,是FileOutputStream /** * 设置列 */ for (DBFField field : fields) { System.out.println("列:" + field.getName() + "[" + field.getLength() + "]"); } writer.setFields(fields); System.out.println("========="); /** * 设置数据,并新增数据 */ Object rowData[] = new Object[3]; rowData[0] = "中国"; rowData[1] = "关向辉"; rowData[2] = new Double(5000.01); System.out.println("输出数据:[" + rowData[0] + "," + rowData[1] + "," + rowData[2] + "]"); writer.addRecord(rowData); rowData = new Object[3]; rowData[0] = "英国"; rowData[1] = "关向新"; rowData[2] = new Double(3400.20); System.out.println("输出数据:[" + rowData[0] + "," + rowData[1] + "," + rowData[2] + "]"); writer.addRecord(rowData); rowData = new Object[3]; rowData[0] = "澳门"; rowData[1] = "关向阳"; rowData[2] = new Double(7300.03); System.out.println("输出数据:[" + rowData[0] + "," + rowData[1] + "," + rowData[2] + "]"); writer.addRecord(rowData); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { /** * 关闭资源 */ if (null != writer) { DBFUtils.close(writer); } } System.out.println("========="); System.out.println("输出完成"); }