Как записать вывод функции в файл .txt, используя JAVA - PullRequest
0 голосов
/ 20 октября 2019

Я работаю над командами проекта CLI, и если пользователь пишет (ls> a.txt), это означает, что я должен вывести выходные данные функции ls в файл с именем a.txt. Я использовал split для разделения слов a.txt и ls, но я не могу поместить вывод функции help в a.txt

        for(int j = 0 ; j < input.length();j++)
        {
            if(input.contains(">"))
            {
                String [] Operator = input.split(Pattern.quote(" > "));
                if (!CLI.parse(Operator[0]))
                {
                    continue;
                }
                cases(CLI);
                File file = new File(Operator[1]);
                file.createNewFile();
               // PrintWriter pw = new PrintWriter(Operator[1]);
               // PrintWriter out = new PrintWriter(new FileWriter(Operator[1], true), true);
                out.close();
                pw.close();
            }
        }

Где функция ls используется для печати всех каталогов / файлов внутриопределенный каталог

public void ls()
{
    String arr[] = Current.list();
    if(arr.length==0)
    {
        System.out.println("___<<Empty Directory>>___");
    }
    else
    {
       for (String str : arr)
           System.out.println(str);
    }
}

Извините, если мой английский плохой, так как это не мой родной язык!

1 Ответ

0 голосов
/ 20 октября 2019

Вы можете использовать Logging API . Java содержит API ведения журнала Java. Этот API-интерфейс регистрации позволяет вам настроить, какие типы сообщений будут записываться. Отдельные классы могут использовать этот регистратор для записи сообщений в сконфигурированные файлы журнала.

Пакет java.util.logging предоставляет возможности ведения журнала через класс Logger.

import java.util.logging.FileHandler;
import java.util.logging.Logger;
import java.util.logging.Level;
import java.io.IOException;

public class WriteLogToFile {
    public static void main(String[] args) throws IOException {
        Logger logger = Logger.getLogger(WriteLogToFile.class.getName());

        // Create an instance of FileHandler that write log to a file called
        // app.log. Each new message will be appended at the at of the log file.
        FileHandler fileHandler = new FileHandler("app.log", true);        
        logger.addHandler(fileHandler);

        if (logger.isLoggable(Level.INFO)) {
            logger.info("Information message");
        }

        if (logger.isLoggable(Level.WARNING)) {
            logger.warning("Warning message");
        }

    }
}

Существует такжехороший учебник с лучшими методиками и подробным использованием регистратора. Вот ссылка: https://www.vogella.com/tutorials/Logging/article.html

Вы можете выбрать, какой тип формата файла журнала вы хотите. Пример:

    fileTxt = new FileHandler("Logging.txt");
    fileHTML = new FileHandler("Logging.html");

    // create a TXT formatter
    formatterTxt = new SimpleFormatter();
    fileTxt.setFormatter(formatterTxt);
    logger.addHandler(fileTxt);

    // create an HTML formatter
    formatterHTML = new MyHtmlFormatter();
    fileHTML.setFormatter(formatterHTML);
    logger.addHandler(fileHTML);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...