读取文件内容并组装成List<Bean>
来源:互联网 发布:无法读取碳粉盒数据 编辑:程序博客网 时间:2024/06/06 17:33
今天写了一个读取文件的操作,主要是由于while循环里的操作有点意义,所以记录下来。
public static List<FileVo> getInfoFromFile(FileConfig config) throws Exception{ File file = new File(config.getFilePath()); String splitLine = config.getSplitLine(); String encode = config.getEncode(); String zookeeperUrl = config.getZookeeperUrl(); Map<String,String> map = new HashMap<String,String>(); StringBuffer context = new StringBuffer(); String info = null; BufferedReader reader = null; List<FileVo> list = new LinkedList<>(); try { reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),encode)); while ((info= reader.readLine())!= null){ if (!info.contains("=")&&!info.startsWith(splitLine)){ continue; } if (info.startsWith(splitLine)){ System.out.println(splitLine); FileVo vo = new FileVo(); vo.setDepartmentCode(map.get("departmentCode")); vo.setDepartmentName(map.get("departmentName")); vo.setInterfaceName(map.get("interfaceName")); vo.setInterfaceCode(map.get("interfaceCode")); vo.setInputColumns(map.get("inputColumns")); vo.setInputColumnsArr(map.get("inputColumns").split(",")); vo.setInputColumnNames(map.get("inputColumnNames")); vo.setInputColumnNamesArr(map.get("inputColumnNames").split(",")); vo.setOutputColumnsFirst(map.get("outputColumnsFirst")); vo.setOutputColumnsFirstArr(map.get("outputColumnsFirst").split(",")); vo.setOutputColumnsSecond(map.get("outputColumnsSecond")); vo.setOutputColumnsSecondArr(map.get("outputColumnsSecond").split(",")); vo.setOutputColumnNames(map.get("outputColumnNames")); vo.setoutputColumnNamesArr(map.get("outputColumnNames").split(",")); vo.setZookeeperUrl(zookeeperUrl); vo.setDepartmentDirectory(map.get("departmentDir")); vo.setUseScenes(map.get("useScenes")); list.add(vo); map.clear(); continue; } String[] array = info.split("="); String key = array[0]; String value = array[1]; System.out.println(key+":"+value); map.put(key,value); } System.out.println(context); }finally { if (reader != null){ reader.close(); } } return list; }
读取的文件内容格式如上,存在多个相同的字段,使用************作为每个vo的分割线。FileVo定义了相关的属性,这里就不黏贴了。
主要关注在while循环里的操作:
第一个if判断去掉空行或者无效行,第二个if判断当走到分割线 表明已经走完一个vo,此时需要设置进去,这里用了map作为链接文本数据和vo对象设置的桥梁。走完之后将map清空并break。
1 0
- 读取文件内容并组装成List<Bean>
- Spring读取外部的.properties文件内容并设置给bean的两种方法
- 读取文件内容并排序
- 打开文件并读取文件内容
- JAVA 读取文件并更改文件内容
- IO流读取文件内容并复制
- 将JSON内容写入并读取文件
- 单文档打开文件并读取内容
- InputStream 读取文件并输出内容
- 读取指定行数文件内容并显示
- Python 3.6 读取并操作文件内容
- 读取文件内容并进行大小写转换
- 读取文件内容并转换为对象
- 读取文件内容并替换内容后生成新文件
- java中读取properties文件,并将文件内容转换成map并返回
- 读取文件内容并将内容添加到节点
- Android中组装xml文件内容
- Android中组装xml文件内容
- Java程序员的面试经历和题库
- 使用Python获得本机IP地址
- 循环小数
- CTF--zip压缩包相关
- Android中startActivity的起始调用过程
- 读取文件内容并组装成List<Bean>
- cocoscreater 使用小记
- pl/sql插入语句插入数据库中文为????
- 系统时间struct timespec 与 struct timeval 的区别
- CSS | 常用CSS属性
- cookie和session的有什么区别
- 跨域策略文件crossdomain.xml的配置方法
- VS上使用OpenCV报错解决方法
- jdbc将图片(二进制文件如电影,音乐等)从数据库取出