博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单的file获取文本内容且, 修改文本内容(java8)
阅读量:5992 次
发布时间:2019-06-20

本文共 4256 字,大约阅读时间需要 14 分钟。

hot3.png

题主, 因入职新公司, 表设计混乱, 不得不手动写一个小脚本,获取所有字段后,重新写入至新表中;

思路

顺序如下

f5094b9cdfe2e2328193c50d2ebcc0066a7.jpg

原sql

具体, 获取行 , 根据行开头的"  ,"截取内容, 重新输入到txt, 中就可以了; 

1a0cafc3613ae8838eb4a50881d5b7f839f.jpg

代码

这里就写下 java8 的如何读取和写入吧

package xxx.xxx.xx;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.nio.charset.Charset;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.util.*;import java.util.stream.Collectors;import java.util.stream.Stream;/** * @author :wuxw * @ClassName : test * @description: TODO * @date :2019/3/22 11:54 * @version: 1.0 */public class test {    public static void  main(String[] args){        String filePath = "e:/textDb.txt";        List
lineLists = readTextFile(filePath); // 将每行内容分割 最后输出到文本 Map
tempMap = new HashMap
(); lineLists.forEach(i ->{ String[] temp = i.split("\\s+"); ColumnBean tempBean = new ColumnBean(); if(temp.length>0){ tempBean.setCode(temp[1]); tempBean.setCtype(temp[2]); tempBean.setIsEmpty(temp[3]); if(temp.length == 6 ){ tempBean.setCommont(temp[5]); } if(temp.length == 7 ){ tempBean.setNote(temp[6]); } if(!tempMap.containsKey(temp[1])){ tempMap.put(temp[1],tempBean); } } }); for(ColumnBean c : tempMap.values()){ System.out.println(c.toString()+"----------"); } List
mapKeyList = new ArrayList
(tempMap.values()); mapKeyList.forEach(i -> { System.out.println("--------"+i.toString()); }); beanToTxt("e:/beanDb3.txt",mapKeyList); } /** * @Author wuxw * @Description 行内容版 - 将字符串内容写入文本 * @Date 17:12 2019/3/22 * @Param [filePath, content] * @return void **/ public static void contentToTxt(String filePath, String content) { try{ BufferedWriter writer = new BufferedWriter(new FileWriter(new File(filePath),true)); writer.write(content); writer.close(); }catch(Exception e){ e.printStackTrace(); } System.out.println("文件写入完毕,文件路径:"+filePath); } /** * @Author wuxw * @Description 数组循环写入文本 * @Date 17:12 2019/3/22 * @Param [filePath, listStr] * @return void **/ public static void contentToTxt(String filePath, List
listStr) { try{ BufferedWriter writer = new BufferedWriter(new FileWriter(new File(filePath),true)); listStr.forEach(str ->{ try { if(str.startsWith(" `")) { writer.newLine(); writer.write(str); } } catch (IOException e) { e.printStackTrace(); } }); writer.close(); }catch(Exception e){ e.printStackTrace(); } System.out.println("文件写入完毕,文件路径:"+filePath); } /** * @Author wuxw * @Description bean转成行输出至txt * @Date 17:11 2019/3/22 * @Param [filePath, listStr] * @return void **/ public static void beanToTxt(String filePath, List
listStr) { try{ BufferedWriter writer = new BufferedWriter(new FileWriter(new File(filePath),true)); listStr.forEach(str ->{ try { writer.newLine(); writer.write(str.toString()); } catch (IOException e) { e.printStackTrace(); } }); writer.close(); }catch(Exception e){ e.printStackTrace(); } System.out.println("文件写入完毕,文件路径:"+filePath); } /** * @Author wuxw * @Description 根据文件路径读取文件内容 * @Date 17:10 2019/3/22 * @Param [file] * @return java.util.List
**/ public static List
readTextFile(String file){ //读取文件 List
lineLists = null; try{ lineLists = Files.lines(Paths.get(file), Charset.defaultCharset()) .flatMap(line -> Arrays.stream(line.split("\n"))) .collect(Collectors.toList()); } catch (IOException e) { //Your exception handling here } return lineLists; }}

 

/** * @author :wuxw * @ClassName : ColumnBean * @description: TODO * @date :2019/3/22 15:12 * @version: 1.0 */@Datapublic class ColumnBean {    private String code;    private String ctype;    private String isEmpty;    private String commont;    private String note;    public String toString(){        return code+" "+ctype+" "+isEmpty+" "+commont+" "+note;    }}

效果

253c511b9dd6d7131ac8072a7b3434403e2.jpg

转载于:https://my.oschina.net/java1314/blog/3026435

你可能感兴趣的文章
C#连接Excel和生成Excel
查看>>
wpsca几种使用方法
查看>>
我的友情链接
查看>>
读取局域网ip
查看>>
shell 笔记3
查看>>
nginx安装 实现简单负载
查看>>
百万级访问网站前期的技术准备
查看>>
python安装
查看>>
CentOS7.3.1611部署k8s1.5.2集群
查看>>
依赖注入
查看>>
router ospf命令
查看>>
Centos7手动安装OpenStack Mitaka版本--基本环境安装
查看>>
VLAN原理详解
查看>>
linux系统中的三个时间
查看>>
PHP开发0-PHP语言简介
查看>>
从学习c++到Java----编程启示录
查看>>
使用EasyRecovery恢复RAW格式的U盘数据
查看>>
资源收藏
查看>>
晨读打卡(2018.2)
查看>>
shell 信号列表
查看>>