1. 程式人生 > >io流讀寫檔案(檔案內容修改)

io流讀寫檔案(檔案內容修改)

package cn.sos.psasps;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Random {

public static void main(String[] args) {
    String filePath = "D:\\psasp\\LF.L2";
    writer(filePath,heel(filePath));
    //heel(filePath);
}

/**
* 讀取檔案
* @param filePath
*/
public static List heel(String filePath){
BufferedReader br = null;

    String line = null;
    List<String>list = new ArrayList<>();
    StringBuffer buf = new StringBuffer();

    try {
        //根據檔案路徑建立緩衝輸入流
        br = new BufferedReader(new FileReader(filePath));
        //迴圈讀取檔案的每一行,對需要進行修改的行進行修改,放入快取物件中

        while ((line = br.readLine()) != null) {
            //此處根據實際需要修改某些行的內容
            buf.append(" ").append(" ").append((int)(Math.random()*2)).append(line.substring(3));
            //使用list記錄所有的資料
            list.add(buf.toString());
            System.out.println(buf.toString());
            //清空可變字串,重新記錄資料
            buf.delete(0, buf.length());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }finally{
        try {
            br.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return list;
}

/**
* 將檔案回寫到檔案中
*/
public static void writer(String filePath,List content){
BufferedWriter bw = null;
try {
//根據檔案路徑建立緩衝輸出流
bw = new BufferedWriter(new FileWriter(filePath));
//將內容寫入到檔案中
for (int i = 0; i < content.size(); i++) {
bw.write(content.get(i));
bw.newLine();
}

    } catch (Exception e) {
        e.printStackTrace();
    }finally{
        try {
            bw.close();
        } catch (IOException e) {

            e.printStackTrace();
        }
    }

}

}
注:此程式碼是修改檔案中的第一列隨機0和1