顯示具有 java 標籤的文章。 顯示所有文章
顯示具有 java 標籤的文章。 顯示所有文章

2015年12月2日 星期三

【JAVA】 在button事件下的IOException寫法

最近在弄專題
需要利用button來進行置換txt檔案的動作
(配合前篇 - [JAVA]將txt檔中特定字串取代成另一字串
卻發現在actionPerformed下不能throws IOException
必須利用try跟catch來寫

以下是範例
JButton clean = new JButton("BUTTON1");
clean.setBackground(Color.GREEN);
clean.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){

try{

String path = "路徑";
FileReader fr= new FileReader(path);
BufferedReader br = new BufferedReader(fr);
StringBuffer sb = new StringBuffer();
FileWriter fw = null;
String newContent = "";
String line;

while((line = br.readLine()) != null){
newContent = newContent+line.replace("尋找字串","取代字串")+"\r\n";
}

fw = new FileWriter(path);
fw.write(newContent);
fr.close();
br.close();
fw.close();
}

catch(IOException o){}
}
});


2015年11月23日 星期一

【JAVA】將txt檔中特定字串取代成另一字串

import java.io.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class test{

public static void main(String[] args)throws IOException{
String path = "C:\\123.txt";//文件路徑
FileReader fr= new FileReader(path);
BufferedReader br = new BufferedReader(fr);
StringBuffer sb = new StringBuffer();
FileWriter fw = null;

String line;
String newContent = "";//用來暫存改動後的內容
while((line = br.readLine()) != null)//逐行讀取,該行的內容存進line
{
newContent = newContent+line.replace("abc","egg")+"\n";//已暫存的內容加上line(該行內容)且如果遇到abc就取代成egg,並且換行。註1
}

fw = new FileWriter(path);//建立新檔案,路徑為path
fw.write(newContent);//將暫存內容寫進檔案中
fr.close();
br.close();
fw.close();
}
}


不過利用BufferedReader-readLine()會無視掉換行字元
網路上查了許多用法,各種碰壁中....
慢慢改進Ing

註1:依照作業系統的不同,換行符號的定義也不同
\r\n  Window
\r     Mac
\n    Linux