У меня проблема с этим кодом для домашней работы. Всякий раз, когда я запускаю его, консоль ничего не отображает, я могу писать все, что хочу, но сценарий не заканчивается сам по себе, как если бы он был в бесконечном цикле. Более того, выходной файл также не записывается. В настоящее время я изучаю входные и выходные потоки, поэтому я не знаю, что еще я мог бы сделать, чтобы исправить это. Любая помощь будет высоко ценится.PrintWriter не пишет в файл. [Java]
public class PublicationListingProcess1 extends Publication implements Serializable{
static Publication PublicationArray[];
static String a, n, line;
static int y, c = 0, p, count = 0;
static long z;
static double s;
enum PublicationTypes{PUBLICATIONCODE, PUBLICATIONNAME, PUBLICATIONYEAR, PUBLICATIONAUTHORNAME, PUBLICATIONCOST, PUBLICATIONNBPAGES}
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
File f = new File("PublicationData_Input.txt");
Scanner input = new Scanner(f);
while(input.hasNextLine())
{
c++;
}
PublicationArray = new Publication[c];
System.out.println("Welcome to this organizing software.");
System.out.print("Please enter the destiny file for output: ");
Scanner kb = new Scanner(System.in);
File outFile = new File (kb.next()+".txt");
FileWriter output = new FileWriter (outFile);
PrintWriter writer = new PrintWriter (output);
while(input.hasNextLine())
{
String [] split = input.nextLine().split(" ");
for(int i = 0; i < split.length; i++)
{
z = Long.parseLong(split[0]);
n = split[1];
y = Integer.parseInt(split[2]);
a = split[3];
s = Double.parseDouble(split[4]);
p = Integer.parseInt(split[5]);
PublicationArray[count] = new Publication(z, n, a, y, s, p);
writer.println(PublicationArray[count]);
count++;
}
}
output.close();
input.close();
}
catch(RuntimeException e)
{
e.getMessage();
}
catch (FileNotFoundException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Вы никогда не закрываете 'PrintWriter' – 3kings
, который вы читаете в пустом текстовом файле. Ваша программа не имеет ничего для синтаксического анализа – tmaxxcar
попробуйте передать текстовый файл с 1 или 2 строками, чтобы увидеть, что, если таковые имеются, ошибки вы получить – tmaxxcar