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