[英]Writing to multiple files without duplicating code Java
當我將用戶添加到數組列表時,我有這段代碼可以寫入文件。 該代碼工作正常:
public void writeToFile(String content)
{
try {
File file = new File("H:/JavaWorkspace/TradingPlatformProject/User_Report.txt");
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile(), true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content + "\n" );
bw.close();
logger.info("Recorded to User Activity file");
} catch (IOException e) {
e.printStackTrace();
}
}
當用戶執行其他操作(例如,請求權限升級)時,我想寫入一個單獨的文件。 有什么方法可以在不復制此代碼的情況下寫入新文件“ UserRequests.txt”?
為什么不使該方法更通用?
public void writeToFile(String content, String fileName, String path)
{
try {
File file = new File(path + fileName);
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile(), true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content + "\n" );
bw.close();
logger.info("Recorded to User Activity file");
} catch (IOException e) {
e.printStackTrace();
}
}
然后,您可以使用該方法來寫入各種文件:3
您可能應該只使用第二個參數,如下所示。 此外,您應該在finally塊中關閉Writers。 這樣,即使在寫入過程中發生了異常,您也可以確保Writer被關閉。
public void writeToFile(String content, String path)
{
FileWriter fw
BufferedWriter bw
try {
File file = new File(path);
if (!file.exists()) {
file.createNewFile();
}
fw = new FileWriter(file.getAbsoluteFile(), true);
bw = new BufferedWriter(fw);
bw.write(content + "\n" );
bw.close();
logger.info("Recorded to User Activity file");
} catch (IOException e) {
e.printStackTrace();
} finally {
bw.close();
fw.close();
}
}
我只是將您要寫入的文件傳遞給:
public void writeToFile(String content, String filename){
接着:
File file = new File("H:/JavaWorkspace/TradingPlatformProject/"+filename);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.