`

生成和解析txt文件

 
阅读更多
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开发工程师");
        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开发工程师1");
        map3.put("complit", "上海汽车财务集团有限公司1");
        list.add(map3);

        ReadWriteFile.writeTxtFile(list, map);
        //        ReadWriteFile.replaceTxtByStr("ken", "zhang");
    }
}

分享到:
评论

相关推荐

    java解析txt

    * 功能:Java读取txt文件的内容 * 步骤:1:先获得文件句柄 * 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取 * 3:读取到输入流后,需要读取生成字节流 * 4:一行一行的输出。readline...

    TXT文档数据解析工具

    功能:能够提取把TXT文档中的指定的字符串,并写入新建文件中。...操作:把需要解析的TXT文档拖入执行文件里,然后在对话框中输入起始和结束标记(严格按照举例格式),工具就会提取指定字符串,并生成新文件。

    excel-txt文件解析生成组件

    将 内容 导入到txt 以及 excel中 ,进行抽象封装,对外提供简单的api ,并且将 excel文件映射到list对象中去 ,不需要自己进行解析,实现通用化,这里使用了 annoation 感觉 挺好! 可以下载看看 ,写的不好的可以 跟我 交流...

    用python生成1000个txt文件的方法

    您可能感兴趣的文章:python方法生成txt标签文件的实例代码Python读写txt文本文件的操作方法全解析python实现对文件中图片生成带标签的txt文件方法Python实现合并同一个文件夹下所有txt文件的方法示

    lucene-搜索过程源码解析-1-Weight生成.txt

    lucene-搜索过程源码解析-1-Weight生成.txt

    Delphi读TXT生成TXT、读TXT生成XML、读XML生成TXT

    1、读TXT文本生成相应格式的txt 【TxtToVds】 2、创建XML【XmlToVds】 3、解析XML文件生成对应格式的txt【XmlToVds】

    自媒体剪映字幕文件解析提取成txt小工具

    第一步:把你的视频,放到剪映PC端里,识别出字幕后,关闭剪映。 ...会在“D:\ZM\”文件夹下,生成一个文件名为“故事”的TXT文本。 (PS:亲测可用,不会用的留言,说清楚你的问题,我会一一作答)

    谷歌留痕工具,关键词生成(生成txt文档,可以设置txt文档大小)

    谷歌留痕,需要配合大量的关键词提交到...单个txt文档过大会导致蜘蛛池无法解析。新版的超人超人seo工具可以灵活设置txt文档的大小,方便操作。并且支持emoji图标。 官网地址 http://rbd.lianqin.cc/zhizhu/130.html

    VS之txt文件操作

    TXT文本文件使用范围如此之广,以至于很多文件都是基于此文件生成了各种自定义的文件格式,比如html、xml、dbc、A2L、csv等文件,我们都可以使用TXT文本文件打开,可以查看里面的数据组成方式。不难发现,其实它们都...

    rtf文件解析和生产的python包

    包括两个资源,Rtf-0.2.1是python对rtf文件的解析包,包括rtf转html和txt,资源来源于sourceforge;pyrtf-master是python生成rtf的包,其中包括实例,资源来源github。

    TXT文件数据导入到mysql数据库

    从TXT文件数据导入到mysql数据库,有相关解析示例TXT文件,然后根据情况插入到数据库表中去。

    PL/SQL解析、生成XML例子

    本例子使用PL/SQL解析和生成XML文件,详细查看rar包中的“说明.txt”

    stdf文件解析到csv文件,stdf转csv

    注,文件内自带了一个stdf文件,你可以在未修改配置文件中的待解析文件路径时直接双击运行进行测试 //如有反馈欢迎通过下列联系方式联系我 //Email:xjj@colorcore.cn 如果您要生成test_limits/wafer_map/raw_data/...

    QT实现HEX文件操作

    资源中包括《HEX文件格式解析.pdf》文章,使用QT实现HEX文件生成、HEX文件解析、文件读写及文件拼接功能的工程源码,因项目开发写的工程,可以直接使用,也可作为HEX文件操作参考。

    S57电子海海图数据解析工具

    双击执行parseS57.exe,在文件菜单栏选择-导入S57数据并解析存档,然后在文件选择窗口选择需要解析的ENC数据文件,点确定后,程序会自动读取并解析ENC数据文件,在数据原路径下生成以数据文件名+.txt的文本文件,...

    地址信息批量解析为经纬度工具

    1、输入文件:txt文件,直接拷贝excel的地址列保存到txt文本文件里,每行一个地址,本脚本已做自动规整,不用特别处理; 2、输出文件:自动在同路径下生成csv文件; 3、输出经纬度已进行纠偏,为真实经纬度; 4、...

    kabeja0.4 java解析Autodesk的dxf生成svg,pdf等

    Parser dxfParser = ParserBuilder.createDefaultParser(); dxfParser.parse(in, "UTF-8"); DXFDocument doc = dxfParser.getDocument(); SAXGenerator generator = new SVGGenerator();

    vcf解析工具--安卓通讯录备份文件解析工具

    用安卓手机导出通讯录后,得到一个vcf文件。想在电脑查看,找了网上其他vcf解析工具,发现解析不了,所以自己写了一个,没啥技术含量。运行后直接选择要解析的vcf文件,会自动生成一个解析后的txt文本。

    二维码批量生成工具进阶版.zip

    1.新建一个txt格式的文本文档,再将需要生成的二维码的文本 复制到文档中,一行代表一个二维码。 2.单机浏览按钮选择刚刚新建的文本文档,然后点击开始按钮 解析生成二维码,在C盘会生成一个名为QRCodeImages的...

Global site tag (gtag.js) - Google Analytics