码迷,mamicode.com
首页 > 其他好文 > 详细

替换文件里的相关单词(一)之文件类型为txt

时间:2018-02-21 20:05:04      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:ram   文件的   tostring   语言   rac   输入流   auth   bool   acl   

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

第一步:我们须要获取要改动文件的信息,我们能够通过文件的路径来获取文件的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+"\r\n"); } 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平台的总称。

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

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

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

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

\r"); 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的终于内容是:\r" + sb.toString()); return sb.toString(); } public static void main(String argv[]){ //该文件的信息就是上面的strBuf中的关于java的信息 String filePath = "F:\\aaaaa.txt"; // "res/"; readTxtFile(filePath); } }

技术分享图片

替换文件里的相关单词(一)之文件类型为txt

标签:ram   文件的   tostring   语言   rac   输入流   auth   bool   acl   

原文地址:https://www.cnblogs.com/llguanli/p/8457116.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!