zoukankan      html  css  js  c++  java
  • 替换文件里的相关单词(一)之文件类型为txt

    首先说一下详细的实现思路:

    第一步:我们须要获取要改动文件的信息,我们能够通过文件的路径来获取文件的FileInputStream,即文件的输入流,然后调用InputStreamReader读取文件输入流信息,将读入的信息保存到BufferedReader(BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。)然后通过readLine()函数将流的信息读取出来,这样就完毕了第一步。我们能获取到文件的信息了

    第二步:能够读取文件的信息了,我们就能够通过Matcher这类来匹配我们要替换的单词,然后用appendReplacement()来替换单词。而且保存替换后的字符串信息,

    最后:将替换后的文件信息又一次打印到新的文件里去,接下来请看代码实现:

    package com;
     
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
    /**
     * 
     * @author FishRoad
     * @date 2015年8月17日 下午3:04:08
     *
     */
    public class Test01 {
        /**
         * 功能:Java读取txt文件的内容
         * 步骤:1:先获得文件句柄
         * 2:获得文件句柄当做是输入一个字节码流,须要对这个输入流进行读取
         * 3:读取到输入流后,须要读取生成字节流
         * 4:一行一行的输出。

    readline()。

    * 备注:须要考虑的是异常情况 * @param filePath */ public static void readTxtFile(String filePath){ try { String encoding="GBK"; File file=new File(filePath); String outStr ; if(file.isFile() && file.exists()){ //推断文件是否存在 InputStreamReader read = new InputStreamReader( new FileInputStream(file),encoding);//考虑到编码格式 BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null; StringBuffer sb = new StringBuffer(""); while((lineTxt = bufferedReader.readLine()) != null){ System.out.println(lineTxt); sb.append(lineTxt+" "); } sb.append("What I Want to say is that you are just a good person!"); outStr = sb.toString(); //调用文件的单词替换方法 String changerStr = tpReplaceWord(outStr); read.close(); FileOutputStream out = new FileOutputStream("F:/我的文件复制.txt"); OutputStreamWriter write = new OutputStreamWriter(out); write.write(changerStr); write.flush(); write.close(); }else{ System.out.println("找不到指定的文件"); } } catch (Exception e) { System.out.println("读取文件内容出错"); e.printStackTrace(); } } public static String tpReplaceWord(String str) { /*StringBuffer strBuf = new StringBuffer(); strBuf.append("Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(下面简称Java语言)和Java平台的总称。

    " + "由James Gosling和同事们共同研发,并在1995年正式推出。

    " + "Java最初被称为Oak。是1991年为消费类电子产品的嵌入式芯片而设计的。

    " + "1995年更名为Java,并又一次设计用于开发Internet应用程序。

    " + "用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力: " + "跨平台、动态Web、Internet计算。 " + "从此。Java被广泛接受并推动了Web的迅速发展,经常使用的浏览器均支持Javaapplet。 " + "还有一方面,Java技术也不断更新。Java自面世后就很流行,发展迅速。对C++语言形成有力冲击。 " + "在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 " + "2010年Oracle公司收购Sun Microsystems。

    "); String a = strBuf.toString();*/ // 生成Pattern对象而且编译一个简单的正則表達式"Java" Pattern p = Pattern.compile("Java"); // 用Pattern类的matcher()方法生成一个Matcher对象 Matcher m = p.matcher(str); StringBuffer sb = new StringBuffer(); int i = 0; // 使用find()方法查找第一个匹配的对象 boolean result = m.find(); // 使用循环将句子里全部的Java找出并替换再将内容加到sb里 while (result) { i++; m.appendReplacement(sb, " 呵呵 "); // System.out.println("第" + i + "次匹配后sb的内容是:" + sb); // 继续查找下一个匹配对象 result = m.find(); } // 最后调用appendTail()方法将最后一次匹配后的剩余字符串加到sb里; m.appendTail(sb); System.out.println("调用m.appendTail(sb)后sb的终于内容是: " + sb.toString()); return sb.toString(); } public static void main(String argv[]){ //该文件的信息就是上面的strBuf中的关于java的信息 String filePath = "F:\aaaaa.txt"; // "res/"; readTxtFile(filePath); } }



  • 相关阅读:
    第15章-输入/输出 --- 字节流和字符流
    第15章-输入/输出 --- 理解Java的IO流
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/llguanli/p/8457116.html
Copyright © 2011-2022 走看看