java 读取 dbf数据库的dbf文件代码
2017-03-15 08:48
483 查看
java 读取 dbf数据库的dbf文件代码
package cai.fu.com;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
import com.linuxense.javadbf.DBFField;
import com.linuxense.javadbf.DBFReader;
import com.linuxense.javadbf.DBFWriter;
import net.sf.json.JSONObject;
import redis.clients.jedis.Jedis;
public class Rwdbf {
private static Jedis jedis;
public static void setup() {
// 连接redis服务器,192.168.0.188:6379
jedis = new Jedis("192.168.0.188", 6379);
// 权限认证
// jedis.auth("sa123456");
}
public static void readDBF(String path)
{
InputStream fis = null;
Map map = new HashMap();
try {
// 读取文件的输入流
fis = new FileInputStream(path);
// 根据输入流初始化一个DBFReader实例,用来读取DBF文件信息
DBFReader reader = new DBFReader(fis);
// 调用DBFReader对实例方法得到path文件中字段的个数
int fieldsCount = reader.getFieldCount();
Object[] rowValues;
// 一条条取出path文件中记录
while ((rowValues = reader.nextRecord()) != null) {
for (int i = 0; i < rowValues.length; i++) {
if (i == 0) {
// 0.股票代码
map.put("symbol", rowValues[i].toString());
} else if (i == 2) {
String cloPrices = rowValues[i].toString();
double topPrices = Double.parseDouble(cloPrices) * 1.1;
double fallPrices = Double.parseDouble(cloPrices) * 0.90;
double pricetop = topPrices - 9;
double pricefall = fallPrices - 9;
BigDecimal bfall = new BigDecimal(pricefall);
double pricefa = bfall.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
BigDecimal btop = new BigDecimal(pricetop);
double priceto = btop.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
// 7.跌停价
map.put("pricefall", pricefa);
// 6.涨停价
map.put("pricetop", pricetop);
BigDecimal bdto = new BigDecimal(Double.parseDouble(rowValues[i].toString()));
double pricebdto = bdto.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
// 3.收盘价
map.put("close", pricebdto);
} else if (i == 3) {
// 2.今开
map.put("open", rowValues[i].toString());
} else if (i == 4) {
// 1.现价
map.put("currentPrice", rowValues[i].toString());
} else if (i == 5) {
// 9.成交数量
map.put("amount", new BigDecimal(rowValues[i].toString()).toPlainString());
} else if (i == 8) {
BigDecimal hqzgcj = new BigDecimal(rowValues[i].toString());
double pricehqzgcj = hqzgcj.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
// 4.最高价
map.put("high", pricehqzgcj);
} else if (i == 9) {
BigDecimal hazdcj = new BigDecimal(rowValues[i].toString());
double priceHazdcj = hazdcj.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
// 5.最低价
map.put("low", priceHazdcj);
} else if (i == 15) {
// HQSJW5:行情Sell价位5
// HQSSL5:行情Buy数量5
map.put("HQSJW5", rowValues[i].toString());
} else if (i == 16) {
map.put("HQSSL5", rowValues[i].toString());
} else if (i == 17) {
map.put("HQSJW4", rowValues[i].toString());
} else if (i == 18) {
map.put("HQSSL4", rowValues[i].toString());
} else if (i == 19) {
map.put("HQSJW3", rowValues[i].toString());
} else if (i == 20) {
map.put("HQSSL3", rowValues[i].toString());
} else if (i == 21) {
map.put("HQSJW2", rowValues[i].toString());
} else if (i == 22) {
map.put("HQSSL2", rowValues[i].toString());
} else if (i == 23) {
map.put("HQSJW1", rowValues[i].toString());
} else if (i == 24) {
map.put("HQSSL1", rowValues[i].toString());
} else if (i == 25) {
map.put("HQBJW1", rowValues[i].toString());
} else if (i == 26) {
map.put("HQBSL1", rowValues[i].toString());
} else if (i == 27) {
map.put("HQBJW2", rowValues[i].toString());
} else if (i == 28) {
map.put("HQBSL2", rowValues[i].toString());
} else if (i == 29) {
map.put("HQBJW3", rowValues[i].toString());
} else if (i == 30) {
map.put("HQBSL3", rowValues[i].toString());
} else if (i == 31) {
map.put("HQBJW4", rowValues[i].toString());
} else if (i == 32) {
map.put("HQBSL4", rowValues[i].toString());
} else if (i == 33) {
map.put("HQBJW5", rowValues[i].toString());
} else if (i == 34) {
map.put("HQBSL5", rowValues[i].toString());
}
// 8.换手率
map.put("change", "");
}
JSONObject jsonObject = JSONObject.fromObject(map);
jedis.set("5_" + jsonObject.get("symbol"), jsonObject.toString());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fis.close();
} catch (Exception e) {
}
}
}
public static void main(String[] args) {
Rwdbf rdbf = new Rwdbf();
String path = "E:\\SJSHQ.DBF";
setup();
rdbf.readDBF(path);
}
}
package cai.fu.com;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
import com.linuxense.javadbf.DBFField;
import com.linuxense.javadbf.DBFReader;
import com.linuxense.javadbf.DBFWriter;
import net.sf.json.JSONObject;
import redis.clients.jedis.Jedis;
public class Rwdbf {
private static Jedis jedis;
public static void setup() {
// 连接redis服务器,192.168.0.188:6379
jedis = new Jedis("192.168.0.188", 6379);
// 权限认证
// jedis.auth("sa123456");
}
public static void readDBF(String path)
{
InputStream fis = null;
Map map = new HashMap();
try {
// 读取文件的输入流
fis = new FileInputStream(path);
// 根据输入流初始化一个DBFReader实例,用来读取DBF文件信息
DBFReader reader = new DBFReader(fis);
// 调用DBFReader对实例方法得到path文件中字段的个数
int fieldsCount = reader.getFieldCount();
Object[] rowValues;
// 一条条取出path文件中记录
while ((rowValues = reader.nextRecord()) != null) {
for (int i = 0; i < rowValues.length; i++) {
if (i == 0) {
// 0.股票代码
map.put("symbol", rowValues[i].toString());
} else if (i == 2) {
String cloPrices = rowValues[i].toString();
double topPrices = Double.parseDouble(cloPrices) * 1.1;
double fallPrices = Double.parseDouble(cloPrices) * 0.90;
double pricetop = topPrices - 9;
double pricefall = fallPrices - 9;
BigDecimal bfall = new BigDecimal(pricefall);
double pricefa = bfall.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
BigDecimal btop = new BigDecimal(pricetop);
double priceto = btop.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
// 7.跌停价
map.put("pricefall", pricefa);
// 6.涨停价
map.put("pricetop", pricetop);
BigDecimal bdto = new BigDecimal(Double.parseDouble(rowValues[i].toString()));
double pricebdto = bdto.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
// 3.收盘价
map.put("close", pricebdto);
} else if (i == 3) {
// 2.今开
map.put("open", rowValues[i].toString());
} else if (i == 4) {
// 1.现价
map.put("currentPrice", rowValues[i].toString());
} else if (i == 5) {
// 9.成交数量
map.put("amount", new BigDecimal(rowValues[i].toString()).toPlainString());
} else if (i == 8) {
BigDecimal hqzgcj = new BigDecimal(rowValues[i].toString());
double pricehqzgcj = hqzgcj.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
// 4.最高价
map.put("high", pricehqzgcj);
} else if (i == 9) {
BigDecimal hazdcj = new BigDecimal(rowValues[i].toString());
double priceHazdcj = hazdcj.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
// 5.最低价
map.put("low", priceHazdcj);
} else if (i == 15) {
// HQSJW5:行情Sell价位5
// HQSSL5:行情Buy数量5
map.put("HQSJW5", rowValues[i].toString());
} else if (i == 16) {
map.put("HQSSL5", rowValues[i].toString());
} else if (i == 17) {
map.put("HQSJW4", rowValues[i].toString());
} else if (i == 18) {
map.put("HQSSL4", rowValues[i].toString());
} else if (i == 19) {
map.put("HQSJW3", rowValues[i].toString());
} else if (i == 20) {
map.put("HQSSL3", rowValues[i].toString());
} else if (i == 21) {
map.put("HQSJW2", rowValues[i].toString());
} else if (i == 22) {
map.put("HQSSL2", rowValues[i].toString());
} else if (i == 23) {
map.put("HQSJW1", rowValues[i].toString());
} else if (i == 24) {
map.put("HQSSL1", rowValues[i].toString());
} else if (i == 25) {
map.put("HQBJW1", rowValues[i].toString());
} else if (i == 26) {
map.put("HQBSL1", rowValues[i].toString());
} else if (i == 27) {
map.put("HQBJW2", rowValues[i].toString());
} else if (i == 28) {
map.put("HQBSL2", rowValues[i].toString());
} else if (i == 29) {
map.put("HQBJW3", rowValues[i].toString());
} else if (i == 30) {
map.put("HQBSL3", rowValues[i].toString());
} else if (i == 31) {
map.put("HQBJW4", rowValues[i].toString());
} else if (i == 32) {
map.put("HQBSL4", rowValues[i].toString());
} else if (i == 33) {
map.put("HQBJW5", rowValues[i].toString());
} else if (i == 34) {
map.put("HQBSL5", rowValues[i].toString());
}
// 8.换手率
map.put("change", "");
}
JSONObject jsonObject = JSONObject.fromObject(map);
jedis.set("5_" + jsonObject.get("symbol"), jsonObject.toString());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fis.close();
} catch (Exception e) {
}
}
}
public static void main(String[] args) {
Rwdbf rdbf = new Rwdbf();
String path = "E:\\SJSHQ.DBF";
setup();
rdbf.readDBF(path);
}
}
相关文章推荐
- 【JAVA】读取和写入数据库生成的dbf文件
- IIS6.0日志文件分析代码_3线程读取文件到数据库
- 如何从Project数据库中读取mpp文件中自定义域以及自定义大纲代码
- java读取word-excel-ppt文件代码
- Java解析DBF文件,错误Failed to parse Number: For input string: "-.---" 或读取不出数据或乱码问题都在这里解决
- java读取本地excel文件代码
- IIS6.0日志文件分析代码_3线程读取文件到数据库
- 救火!各位大虾,怎样用JAVA程序读取excle文件或excle数据库,并插入到oracle数据库中,万分感谢
- java读取和修改ini配置文件实例代码
- JAVA读取属性文件来连接数据库
- java用JXL读取excle文件(demo)示例代码
- [转]生成/读取(反向更新数据库) Excel文件(示例代码下载)
- ASP中从数据库读取二进制文件数据代码
- 生成/读取(反向更新数据库) Excel文件(示例代码下载)
- 生成/读取(反向更新数据库) Excel文件(示例代码下载)
- 生成/读取(反向更新数据库) Excel文件(示例代码下载)
- java 读取 property 属性文件的代码
- 读取UTF-8文件的JAVA代码
- JAVA读取XML文件并利用该文件对数据库进行配置操作
- Java读取文件的简单代码