簡體   English   中英

無需復制Java代碼即可寫入多個文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM