java:读写csv文件
2016-01-08 04:40
375 查看
学期projet总结:
做这个projet的第一步就是把数据读进来。
为了保存与点相关的数据,我定义两个ArrayList:
为了保存与线相关的数据,我定义四个ArrayList:
其实这里更好的方法是定义一个node类,node类有三个属性:index,longitude,latitude;定义一个arc类,arc类有四个属性:source,target,distance,danger。然后定义两个ArrayList:
读csv文件:csv文件的每行数据都有分隔符,一般是逗号,也有其他情况,这里老师给的数据的分隔符是“\t”。代码如下:
在java中有一个专门操作csv文件的包,叫javacsv.jar,接下来介绍一下用这个包怎么读csv文件。首先要在程序中引入这个包,主要代码如下:
用这个jar包保存csv文件也很方便。在projet中如果选中一条线,可以更改线的距离和危险系数,然后要把新的arc数据保存成csv文件,几行代码就可以搞定。要注意的是,一行一行的写数据,并且数据格式是String类型
做这个projet的第一步就是把数据读进来。
为了保存与点相关的数据,我定义两个ArrayList:
[code]// two arraylists for saving the values of longitude and latitude public static ArrayList<Double> longitude = new ArrayList<Double>(); public static ArrayList<Double> latitude = new ArrayList<Double>();
为了保存与线相关的数据,我定义四个ArrayList:
[code]// four arraylists for saving the values of source,target,distance and dang public static ArrayList<Integer> source = new ArrayList<Integer>(); public static ArrayList<Integer> target = new ArrayList<Integer>(); public static ArrayList<Integer> distance = new ArrayList<Integer>(); public static ArrayList<Integer> danger = new ArrayList<Integer>();
其实这里更好的方法是定义一个node类,node类有三个属性:index,longitude,latitude;定义一个arc类,arc类有四个属性:source,target,distance,danger。然后定义两个ArrayList:
[code]public static ArrayList<Node> distance = new ArrayList<Node>(); public static ArrayList<Arc> danger = new ArrayList<Arc>();
读csv文件:csv文件的每行数据都有分隔符,一般是逗号,也有其他情况,这里老师给的数据的分隔符是“\t”。代码如下:
[code] // read node file public static void readNode() { try { BufferedReader reader = new BufferedReader(new FileReader( "文件路径")); //csv文件的第一行如果是数据的说明信息的话,需要把它剔除 //reader.readLine();// 如果没有说明信息,就把这行代码注释掉 String line = null; while ((line = reader.readLine()) != null) { // read data to sting array把每行数据读入到一个string数组里 String item[] = line.split("\t");//数据间的分隔符是"\t" // change the value type from sting to double double dLongitude = Double.parseDouble(item[item.length - 2]); double dLatitude = Double.parseDouble(item[item.length - 1]); // add value to arraylist longitude.add(dLongitude); latitude.add(dLatitude); } reader.close(); } catch (Exception e) { e.printStackTrace(); } }
在java中有一个专门操作csv文件的包,叫javacsv.jar,接下来介绍一下用这个包怎么读csv文件。首先要在程序中引入这个包,主要代码如下:
[code]ArrayList<Double> longitude = new ArrayList<Double>(); ArrayList<Double> latitude = new ArrayList<Double>(); try { CsvReader reader = new CsvReader("berlin_noeuds.csv", '\t', Charset.forName("UTF-8"));//文件路径,分隔符,编码格式 // reader.readHeaders(); //跳过表头 如果需要表头的话,不要写这句。 while (reader.readRecord()) { // 逐行读入数据 String item[] = reader.getValues();//保存每行数据 double dLongitude = Double.parseDouble(item[item.length - 2]); double dLatitude = Double.parseDouble(item[item.length - 1]); longitude.add(dLongitude); latitude.add(dLatitude); } reader.close(); } catch (Exception e) { e.printStackTrace(); }
用这个jar包保存csv文件也很方便。在projet中如果选中一条线,可以更改线的距离和危险系数,然后要把新的arc数据保存成csv文件,几行代码就可以搞定。要注意的是,一行一行的写数据,并且数据格式是String类型
[code]CsvWriter wrArc = new CsvWriter("文件路径",'\t', Charset.forName("UTF-8")); for (int i = 0; i < ReadFile.source.size(); i++) { String[] contents = { ReadFile.source.get(i).toString(), ReadFile.target.get(i).toString(), ReadFile.distance.get(i).toString(), ReadFile.danger.get(i).toString() }; try { wrArc.writeRecord(contents); } catch (Exception e) { e.printStackTrace(); } } wrArc.close();
相关文章推荐
- java:学期projet总结,大图可视化
- java web验证码实现
- 如何在MyEclipse中添加插件
- javamail 发送邮件
- mac OS X配置jdk环境变量
- eclipse 创建 maven web 项目教程
- <代码整洁之道>、<java与模式>、<head first设计模式>读书笔记集合
- IO_对象处理流_序列化反序列化_关闭流jdk1.7try-with-resourceJAVA159-160
- 异常java.lang.IllegalArgumentException: No configs match configSpec 的问题
- struts2对action指定方法进行校验(人工编码)
- spring mvc web应用程序框架的搭建
- Spring MVC--拦截器实现和用户登陆例子
- Java文件上传大文件,在windows中没有问题,在线上环境中出错解决
- Eclipse 利用Git插件 上传自己的Maven项目 总结
- Java中的泛型
- Struts入门(一)
- Spring的两种常见的注入
- Spring中的集合的注入方式
- java设计模式——单例模式
- Head First Java 阅读笔记