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();
[...]