简体   繁体   中英

How do I print my output table with 5 parallel arrays from my main class to a .txt file?

I am trying to employ a class to print (append) to a .txt file. I have been unsuccessful so far. I am using a simple logger class to output simple Strings, but how can a output to console and also a .txt file?

Current console output:

11/18/20 14:09:24
Current status of all items being tracked:
Item|             Supply on hand| Last 24 Hr Usage|    Days on hand|          Status|
-------------------------------------------------------------------------------------

1                               1                1                1         Critical 

Process finished with exit code 0

Main class code in question:

        //Display all data, collected and calculated
        System.out.println("Current status of all items being tracked:");
        System.out.printf("%-16s %16s %16s %16s %16s", "Item|", "Supply on hand|", "Last 24 Hr Usage|", "Days on hand|", "Status|");
        System.out.println();
        System.out.println("-------------------------------------------------------------------------------------");
        System.out.println();

        for (int index = 0; index < items.length; index++)
            System.out.printf("%-16s %16d %16d %16d %16s \n", items[index], supplyOnHand[index], last24HourUsage[index], daysOnHand[index], status[index]);

Logger.log("How do I get my table to print here?");

Logger code:

    public class Logger {
        public static void log(String message) throws IOException {
            try (PrintWriter out = new PrintWriter(new FileWriter("output.txt", true), true)) {
                out.write(message);
                out.close();

Current file output:

How do I get my table to print here?

Ok so I found a work around. It is not pretty but will suffice for now.

I am using:

 PrintStream o = new PrintStream(new FileOutputStream("DashboardLog.txt", true));

And then

System.setOut(o);
System.setOut(console);

To separate between console output and file output.

  try (PrintWriter out = new PrintWriter(new FileWriter("output.txt", true), true)) {
            out.write(message);
            out.close();}
catch(Exception e){
}
finally(){ 
            System.out.println(message);
}

?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM