`

生成和解析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...

    C#提取二进制STL文件并生成TXT文件

    这样,我们就完成了从二进制STL文件提取数据并生成TXT文件的过程。需要注意的是,实际的STL文件可能存在字节序问题,因为STL文件格式不规定字节序。如果在不同平台上遇到问题,可能需要进行字节序的转换,例如使用`...

    关于Java的二维码的生成与解析

    在Java编程环境中,二维码的生成与解析是一项常见的需求,特别是在移动应用、数据交换以及物联网等领域。本主题将深入探讨如何使用Java实现这...同时,阅读和理解附带的文档和教程,将有助于更好地理解和使用这些示例。

    解析txt类型的试题文档

    本话题聚焦于"解析txt类型的试题文档",这是一个使用Java编写的程序,它的主要功能是解析txt格式的试题文档,并将这些数据转换成XML文档。让我们深入探讨这个过程涉及的技术点。 首先,txt文件是一种常见的纯文本...

    .net 生成和解析 JSON

    《.NET 生成和解析 JSON》 在现代的Web开发中,JSON(JavaScript Object Notation)已经成为数据交换的标准格式,因为它轻量级、易于阅读和编写,并且被大多数编程语言支持。在.NET环境中,处理JSON涉及到两个主要...

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

    本教程主要涉及三个核心知识点:使用Delphi编程语言读取TXT文件并生成新的TXT文件、创建XML文件以及解析XML文件并将其转换为TXT格式。这些功能在数据转换、数据存储和数据交换等场景下尤为实用。 首先,我们来探讨...

    .net生成和解析二维码及调用摄像头识别二维码源码(完整)

    这个项目提供的源码应该包含了以上所有步骤的实现,你可以通过`使用说明.txt`文件了解如何编译和运行代码。这个完整的源码示例对学习和理解.NET中二维码操作非常有帮助,无论是生成、解析还是实时识别,都能为你提供...

    asp.net动态生成txt文件并下载

    #### 二、动态生成TXT文件的核心代码解析 接下来,我们将详细分析题目中给出的代码片段,了解其工作原理及如何实现动态生成TXT文件的功能。 - **Response对象的作用**:在ASP.NET中,`Response`对象主要用于控制...

    TXT文档数据解析工具

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

    C++代码文档生成器 根据代码及注释自动生成代码文档.zip

    5. **pdir.txt, doc.txt**:这些可能是配置文件或日志文件,记录了项目的目录结构或者工具生成文档过程中的信息。开发者可以根据这些文件调整生成文档的设置。 C++文档生成器的工作原理通常包括以下几个步骤: 1. ...

    java 解析 json文件 java 解析 json文件

    它包括一个解析器(Parser)用于读取JSON,一个生成器(Generator)用于写入JSON,以及一个模型(Model)来表示JSON结构。 4. JSON-B(Java Bindings for JSON-B):这是另一个Java标准API,类似于Gson,但遵循JSR ...

    MFC中将数据导出生成多个txt文件或其它格式如dat文件

    6. **文件格式选择**:除了txt文件,dat文件通常用于存储二进制数据。如果要导出为dat文件,数据写入时不需要转换为字符串,而是直接写入原始字节。注意,dat文件的读取和解析需要知道数据结构,因为它不包含任何...

    excel-txt文件解析生成组件

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

    oui.txt 网卡查询 txt文件解析

    "oui.txt 网卡查询 txt文件解析"这个主题就聚焦于如何处理和解析这种特定类型的文本文件,以便获取关于网络接口控制器(NICs)的制造商信息。OUI,全称为Organizationally Unique Identifier,是由IEEE分配给各制造...

    批量将TXT生成CHM文件

    4. **生成**:在上下文中,生成指的是将TXT文件转换为CHM文件的过程,这可能涉及到文本解析、HTML编译和文件打包等步骤。 5. **工具**:描述中提到的工具,可能是一个名为“TxtChmFile”的应用程序,用于实现批量...

    使用java代码生成json文件和word文档!

    在Java编程环境中,生成JSON文件和Word文档是常见的任务,特别是在数据处理、报告生成或API交互等场景。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,而Word文档则广泛用于创建结构化的文本报告...

    读取excel自动生成sql文的txt文件

    这个“读取excel自动生成sql文的txt文件”的工具显然是为了解决这一问题而设计的。它允许用户通过Excel表格结构快速生成对应的SQL插入语句,极大地提高了工作效率。 首先,我们需要理解Excel文件的结构。Excel是一...

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

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

    java使用itext解析pdf并生成文本文件—eclipse工程

    在这个“java使用iText解析pdf并生成文本文件—eclipse工程”中,我们将探讨如何利用iText库在Java环境中,特别是在Eclipse集成开发环境中,解析PDF文档并将其内容导出为文本文件。 首先,我们需要理解PDF...

    Android网络下的XML解析和生成.

    本章节将深入探讨Android环境下如何进行XML的解析和生成,这对于理解数据交互、API调用以及本地数据存储至关重要。 一、XML解析 1. DOM解析器:DOM(Document Object Model)模型是把XML文档加载到内存中,形成一...

Global site tag (gtag.js) - Google Analytics