java 将结果导出为txt文件、txt文件
-
场景
作为小工具,我是用来进行数据转换,比如经纬度转换、地址转换将原始数据放在一个txt文件中通过代码读取后在调用接口转换需要的数据,通过特定的符号进行拼接再输入到另一个txt文件,然后放在excel中进行分列,这样就得到了需要的数据并且是excel形式,继而根据excel的功能对数据在进行处理。如果直接读取excel 再导出excel 太麻烦又慢 还要一点点调试。读取txt 文件在我另一篇文章中。在读取txt内容的时候也是按行有序读取的。所以读取和输出是对应的。这种方式可能更加适合会java的实施类工作或数据治理工作!
这些东西都很简单,毕竟只是个小工具。为了快! -
调用
实际的业务还是要自己处理的,比如调用转换接口,比如结合各类集合的性质及对象 进行数据处理 然后调用下面的代码工具类导出为txt! -
代码
我直接将工具类全部粘贴上来,后续直接复制放在工具类文件夹就行。`如果有问题或者更好的方式欢迎留言!共同进步! -
特别提示
复制过去就能直接调用!只是txt导出 没有任何业务;有业务的话就会显得很乱
public class ToTxtUtils {
//传入一个集合遍历集合数据导出到 txt,内容换行
public static void toTxt(String path, List<String> sourceData) throws IOException {
//好好读这段注释,有讲到使用方法的,代码很简单如果能看懂不读这段注释也可以!
//参数解释
//sourceData 是调用该方法前将数据整理好 因为是数组集合 所以他的顺序是不变的 输出也是有序的
//path 是你要导出的文件地址及文件名 如果没有该文件会先按照你的指定路径创建一个txt 文件然后输出到该文件
//比如 在调用前 设置路径为 String path="G:\\zhuomian\\mywy.txt"; 然后将path作为参数传入即可。
//快速测试导出
//如果测试的时候你也可以先将下面的 for循环中的sourceData 换成 999999 也是可以输出的。
//最后一定要刷新下缓冲区可以理解为清空然后关闭掉 这是bufferedWriter方法的使用方法。可以自行百度下。还有就是如果数据量特别大建议还是分片 bufferedWriter.flush(); 一下,否则你的内存会持续被占用。为什么会占用内存呢?就是因为BufferedWriter 有一个缓冲区 所以它的性能比FileWriter好一些。
//缺点
//这个方法你在使用过程中数据输出数据量很大那么可能会导致List<String>在add的时候内存溢出,所以我在大批量数据的时候我还是喜欢用下面的那个方法。但是这样取决你的内存和启动参数
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(path));
for (int i=0;i<sourceData.size();i++){
String val = sourceData.get(i);
bufferedWriter.write(val);
bufferedWriter.newLine(); //换行,上面写了提供的换行方法。
}
bufferedWriter.flush();
bufferedWriter.close(); //关闭输入流
}
// 1、传入单个参数连续导出到txt,内容换行
public static void toTxtLine(BufferedWriter bufferedWriter, String sourceData) throws IOException {
//调用之前首先声明该对象作为参数传入到该方法,地址可以自定义
// BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("G:\\zhuomian\\mywy.txt")); //在指定位置创建文件。
try {
bufferedWriter.newLine(); //换行,上面写了提供的换行方法。
bufferedWriter.write(sourceData);
}catch (Exception e){
System.out.println("***异常****"+e);
System.out.println("***异常数据****"+sourceData);
}finally {
bufferedWriter.flush();
bufferedWriter.close();
}
}
}