博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成和解析txt文件
阅读量:4654 次
发布时间:2019-06-09

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

package txt;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;/** * 功能描写叙述:创建TXT文件并进行读、写、改动操作 * @author lizhiyong * @version $Id: ReadWriteFile.java, v 0.1		2014年8月5日 下午1:27:38 Exp $ */public class ReadWriteFile {    //指定文件路径和名称    private static String path     = "C:/測试.txt";    private static File   filename = new File(path);    private static String readStr  = "    ";    /**     * 创建文本文件.     * @throws IOException      *      */    public static void creatTxtFile() throws IOException {        if (!filename.exists()) {            filename.createNewFile();            System.err.println(filename + "已创建!

"); } else { filename.delete(); creatTxtFile(); } } /** * 读取文本文件. * @throws UnsupportedEncodingException * */ @SuppressWarnings("resource") public static String readTxtFile() throws UnsupportedEncodingException { String readData = null; //BufferedReader br = null; BufferedReader br = null; try { //br = new BufferedReader(new InputStreamReader(new FileInputStream(filename))); br = new BufferedReader(new FileReader(filename)); try { while ((readData = br.readLine()) != null) { System.out.println("readData:" + readData); readStr = readStr + readData + "\r\n"; } } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } System.out.println("文件内容2是:" + "\r\n" + readStr); return readStr; } /** * 给文件写内容. * @param content 写入的文件内容 * @throws IOException */ @SuppressWarnings({ "rawtypes", "unchecked" }) public static void writeTxtFile(List contentList, HashMap<String, String> map) throws IOException { //先读取原有文件内容。然后进行写入操作 FileWriter writer = null; String filein = map.get("1") + readStr + map.get("2") + readStr + map.get("3") + readStr + map.get("4"); try { writer = new FileWriter(filename, true); writer.write(filein); } catch (IOException e1) { e1.printStackTrace(); } finally { if (writer != null) { try { writer.close(); } catch (IOException e2) { e2.printStackTrace(); } } } for (Iterator iterator = contentList.iterator(); iterator.hasNext();) { HashMap<String, String> map2 = (HashMap<String, String>) iterator.next(); String name = map2.get("name"); String age = map2.get("age"); String postion = map2.get("postion"); String complit = map2.get("complit"); String filein1 = "\r\n" + name + readStr + age + readStr + postion + readStr + complit + "\r\n"; try { writer = new FileWriter(filename, true); writer.write(filein1); } catch (Exception e) { e.printStackTrace(); } finally { if (writer != null) { try { writer.close(); } catch (IOException e2) { e2.printStackTrace(); } } } } readTxtFile(); } /** * 将文件里指定内容的第一行替换为其他内容. * * @param oldStr * 查找内容 * @param replaceStr * 替换内容 */ @SuppressWarnings("unused") public static void replaceTxtByStr(String oldStr, String replaceStr) { String temp = ""; try { File file = new File(path); FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis); BufferedReader br = new BufferedReader(isr); StringBuffer buf = new StringBuffer(); // 保存该行前面的内容 for (int j = 1; (temp = br.readLine()) != null && !temp.equals(oldStr); j++) { buf = buf.append(temp); buf = buf.append(System.getProperty("line.separator")); } // 将内容插入 buf = buf.append(replaceStr); // 保存该行后面的内容 while ((temp = br.readLine()) != null) { buf = buf.append(System.getProperty("line.separator")); buf = buf.append(temp); } br.close(); FileOutputStream fos = new FileOutputStream(file); PrintWriter pw = new PrintWriter(fos); pw.write(buf.toString().toCharArray()); pw.flush(); pw.close(); } catch (IOException e) { e.printStackTrace(); } } /** * main方法測试 * @param s * @throws IOException */ @SuppressWarnings({ "rawtypes", "unchecked" }) public static void main(String[] s) throws IOException { ReadWriteFile.creatTxtFile(); //ReadWriteFile.readTxtFile(); List list = new ArrayList(); HashMap<String, String> map = new HashMap<String, String>(); map.put("1", "姓名"); map.put("2", "年龄"); map.put("3", "职位"); map.put("4", "工作单位"); HashMap<String, String> map2 = new HashMap<String, String>(); map2.put("name", "李四"); map2.put("age", "25"); map2.put("postion", "Java开发project师"); map2.put("complit", "上海汽车財务集团有限公司"); list.add(map2); HashMap<String, String> map3 = new HashMap<String, String>(); map3.put("name", "李四1"); map3.put("age", "251"); map3.put("postion", "Java开发project师1"); map3.put("complit", "上海汽车財务集团有限公司1"); list.add(map3); ReadWriteFile.writeTxtFile(list, map); // ReadWriteFile.replaceTxtByStr("ken", "zhang"); } }

转载于:https://www.cnblogs.com/brucemengbm/p/7219059.html

你可能感兴趣的文章
JS中for循环输出三角形
查看>>
字节对齐2
查看>>
与Win8之磁盘活动时间100%斗争心得
查看>>
Matrix: android 中的Matrix (android.graphics.Matrix) (转)
查看>>
Android中处理崩溃异常
查看>>
Day7—socket进阶
查看>>
只读数据文件损坏恢复
查看>>
转过来的,可以看下
查看>>
windows搭建SVN服务MD版
查看>>
Java私塾的一些基础练习题(一)
查看>>
Shell 07 项目案例
查看>>
Dapper基础用法
查看>>
一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单(1)--创建和使用可重用工作流...
查看>>
Network 第六篇 - 三层交换机配置路由功能
查看>>
OSL LLVM 3.3 Related Changes
查看>>
1.4 99乘法表
查看>>
雇佣K个工人的最小费用 Minimum Cost to Hire K Workers
查看>>
mysql优化方法
查看>>
[转]【HttpServlet】HttpServletResponse接口 案例:完成文件下载
查看>>
Eclipse配置默认的编码集为utf-8
查看>>