1 package com.test; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileNotFoundException; 8 import java.io.FileReader; 9 import java.io.FileWriter; 10 import java.io.IOException; 11 import java.io.InputStream; 12 import java.util.ArrayList; 13 import java.util.List; 14 /** 15 * 将文档中每一行的男转为女,需要注意要读取的文件的编码格式与java文件的编码格式相同 16 * @author Administrator 17 * 18 */ 19 public class Demo2 { 20 21 public static void main(String[] args) { 22 // TODO Auto-generated method stub 23 24 Read read = new Read(); 25 read.readWrite(); 26 } 27 28 } 29 30 class Read { 31 public static void readWrite() { 32 33 34 BufferedReader bufferedReader = null; 35 BufferedWriter bufferedWriter = null; 36 try { 37 //找到要进行转换的文件 38 File file = new File("D://userMsg//userinfo.txt"); 39 //建立读取数据通道 40 FileReader fileReader = new FileReader(file); 41 bufferedReader = new BufferedReader(fileReader); 42 String str = null; 43 //保存读取道德内容 输入流 44 List<String> list = new ArrayList<String>(); 45 while ((str = bufferedReader.readLine()) != null) { 46 //进行男女转换 47 System.out.println(str); 48 String s = str.replaceAll("男", "女"); 49 list.add(s); 50 } 51 //建立写入数据通道 输出流 52 FileWriter fileWriter = new FileWriter(file); 53 bufferedWriter = new BufferedWriter(fileWriter); 54 //遍历集合 55 for (String s : list) { 56 bufferedWriter.write(s); 57 System.out.println(s); 58 } 59 //流冲刷,如果缺少,可能导致写入不成功 60 bufferedWriter.flush(); 61 } catch (FileNotFoundException e) { 62 // TODO Auto-generated catch block 63 e.printStackTrace(); 64 } catch (IOException e) { 65 e.printStackTrace(); 66 } finally { 67 //关闭流 68 if (bufferedWriter != null) { 69 try { 70 bufferedWriter.close(); 71 } catch (IOException e) { 72 // TODO Auto-generated catch block 73 e.printStackTrace(); 74 } finally { 75 if (bufferedReader != null) { 76 try { 77 bufferedReader.close(); 78 } catch (IOException e) { 79 // TODO Auto-generated catch block 80 e.printStackTrace(); 81 } 82 } 83 } 84 } 85 } 86 87 } 88 }