用java进行文件的读写和字符串的替换

来源:互联网 发布:淘宝虚标价格 编辑:程序博客网 时间:2024/04/28 05:03
import java.io.*;



public class ReadWriteFile {
 
   publicstatic BufferedReader bufread;
   //指定文件路径和名称
    privatestatic String path = "D:/suncity.txt";
    privatestatic  File filename = new File(path);
    privatestatic String readStr ="";


   
    publicstatic void creatTxtFile() throws IOException{
       if (!filename.exists()) {
           filename.createNewFile();
           System.err.println(filename + "已创建!");
       }
    }
   
   
    publicstatic String readTxtFile(){
       String read;
       FileReader fileread;
       try {
           fileread = new FileReader(filename);
           bufread = new BufferedReader(fileread);
           try {
               while ((read = bufread.readLine()) != null) {
                   readStr = readStr + read+ "\r\n";
               }
           } catch (IOException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
           }
       } catch (FileNotFoundException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }

       System.out.println("文件内容是:"+ "\r\n" + readStr);
       return readStr;
    }
   
   
    publicstatic void writeTxtFile(String newStr) throws IOException{
       //先读取原有文件内容,然后进行写入操作
       String filein = newStr + "\r\n" + readStr + "\r\n";
       RandomAccessFile mm = null;
       try {
           mm = new RandomAccessFile(filename, "rw");
           mm.writeBytes(filein);
       } catch (IOException e1) {
           // TODO 自动生成 catch 块
           e1.printStackTrace();
       } finally {
           if (mm != null) {
               try {
                   mm.close();
               } catch (IOException e2) {
                   // TODO 自动生成 catch 块
                   e2.printStackTrace();
               }
           }
       }
    }
   
   
    publicstatic 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();
       }
    }
    publicstatic void replaceTxtFile()
   {
    Stringread;
    Stringread2;
    try{
    FileReader fileread = new FileReader(filename);
    bufread = new BufferedReader(fileread);
    FileWriter newFile =new FileWriter(filename);
    BufferedWriter bw = new BufferedWriter(newFile);
    while ((read = bufread.readLine()) != null)
    {
    read2=read.replace("1.1.1.1","2.2.2.2");

    System.out.println(read2);
    bw.write(read2);
    bw.newLine();
    bw.flush();
    }
    }
    catch (Exception e) { 
            e.printStackTrace(); 
        }
   }
   
    publicstatic void main(String[] s) throws IOException {
       ReadWriteFile.creatTxtFile();
       ReadWriteFile.readTxtFile();
       ReadWriteFile.writeTxtFile("20080808:12:13");
       ReadWriteFile.replaceTxtByStr("ken", "zhang");
       ReadWriteFile.replaceTxtFile();
    }
}

原创粉丝点击