日期:2014-05-20 浏览次数:20715 次
用list不好实现了。。因为数据无法拆分出来。。只能通过键值对的方式。。下面我的map。 // 如果只有三个文件的话,,下面的方法就可以了。。。 public static Map<Integer, List<String>> fileData(){ String dir = "E:/typhoon"; File file = new File(dir); if (file.isDirectory()) { String[] filelist = file.list(); Map<Integer, List<String>> map = new HashMap<Integer, List<String>>(); List<String> list = new ArrayList<String>(); for (int i = 0; i < filelist.length; i++) { List<String> listData = getData(dir + "\\" + filelist[i]); // 得到第i个文件中的数据 map.put(i+1, listData); } int m = map.get(0).size(); // 取第一个list int n = 0; for (; n < m; n++) { ps = conn.prepareStatement("insert into TFYJ_RCTQ_YC(id,sb,x,y,wd) values(?,?,?,?,?)"); ps.setLong(1, n + 1); ps.setString(2, "2011-11-10"); ps.setObject(3, map.get(1).get(n)); ps.setObject(4, map.get(2).get(n)); ps.setObject(5, map.get(3).get(n)); ps.addBatch(); ps.executeBatch(); ps.clearBatch(); ps.close(); } } }
------解决方案--------------------
// 如果你那个目录下的文件里面的内容全是整合到
String readX = "E:/typhoon/lat.dat";
String readY = "E:/typhoon/lon.dat";
String readWD = "E:/typhoon/t2.dat";
这三个文件内容的话, 就好办,
如果不是, 例如正面还有个文件t1.dat, 跟你的t2.dat内容是一样的话, 就不知道怎么弄咯,
List<String[]> list = getData(dir + "\\" + filelist[i]);
// 这方法返回一个数组, 分别包含lat.dat, lon.dat, t2.dat"
ps.setObject(3, list.get(n)[0]);
ps.setObject(4, list.get(n)[1]);
ps.setObject(5, list.get(n)[2]);
------解决方案--------------------