Java Printwriter: выходной файл пуст

Вопрос: Как попросить определенный выходной класс напечатать результат в выходной файл как.txt

Кажется, что все другие классы java работают и работают нормально, но он не может распечатать какие-либо данные в выходной папке. Я импортировал PrintWriter, но он не будет создавать файл

Код:

import java.io.IOException;
 import java.io.PrintWriter;



public class Outputs
{
    //INSTANCE FIELDS

    private Solution cwsSolution;
    private Solution bestSol;

    // CLASS CONSTRUCTOR

    Outputs()
    {   cwsSolution = null;
        bestSol = null;
    }

    // SET METHODS

    public void setCWSSol(Solution cwsSol)
    {   cwsSolution = cwsSol;
    }

    public void setOBSol(Solution obSol)
    {   bestSol = obSol;
    }

    // GET METHODS

    public Solution getCWSSol()
    {   return cwsSolution;
    }

    public Solution getOBSol()
    {   return bestSol;
    }

    //PUBLIC METHOD 
printOutputFile()

    public void sendToFile(String outFile)
    {
        try 
        {   PrintWriter out = new PrintWriter(outFile);
            out.println("***************************************************");
            out.println("*                      OUTPUTS                    *");
            out.println("***************************************************");
            out.println("\r\n");
            out.println("--------------------------------------------");
            out.println("Clarke & Wright Solution (parallel version)");
            out.println("--------------------------------------------");
            out.println(cwsSolution.toString() + "\r\n");
            out.println("--------------------------------------------");
            out.println("\r\n OUR BEST SOLUTION:\r\n");
            out.println("--------------------------------------------");
            out.println(bestSol.toString() + "\r\n");
            out.close();
        } catch (IOException exception) 
        {   System.out.println("Error processing output file: " + exception);
        }
    }
}

2 ответа

Решение

Я создал фиктивную программу, используя sendToFile(), и она работает нормально и создает выходной файл.

Пожалуйста, вставьте ошибку, которую вы получаете. Я надеюсь, что вы инициализируете переменные "cwsSolution" и "cwsSolution" правильно, и ноль не выдается.

Посмотрите, поможет ли следующая ссылка: Как использовать классы PrintWriter и File в Java?

Пример кода ниже:

   public class Outputs
 {
    String bestSol="bestSol";
    String cwsSolution="cwsSolution";

   public void sendToFile(String outFile)
   {

   try 
   {   PrintWriter out = new PrintWriter(outFile);
       out.println("***************************************************");
       out.println("*                      OUTPUTS                    *");
       out.println("***************************************************");
       out.println("\r\n");
       out.println("--------------------------------------------");
       out.println("Clarke & Wright Solution (parallel version)");
       out.println("--------------------------------------------");
       out.println(cwsSolution.toString() + "\r\n");
       out.println("--------------------------------------------");
       out.println("\r\n OUR BEST SOLUTION:\r\n");
       out.println("--------------------------------------------");
       out.println(bestSol.toString() + "\r\n");
       out.close();
   } catch (IOException exception) 
   {   System.out.println("Error processing output file: " + exception);
   }
 }

   public static void main(String[] args) {
        Outputs output = new Outputs();
        output.sendToFile("C:\\t.txt");
   }
}

Проблема, которую я вижу в том, что вы забыли .flush() PrintWriter чтобы окончательно отправить данные в выходной целевой объект перед его закрытием.

[...]
out.println(bestSol.toString() + "\r\n");
out.flush();
out.close();
[...]
Другие вопросы по тегам