J'ai un problème avec ce code pour les devoirs. Chaque fois que je l'exécute, la console n'affiche rien, je suis capable d'écrire tout ce que je veux, mais le script ne se termine pas tout seul, comme s'il s'agissait d'une boucle infinie. De plus, le fichier de sortie n'écrit pas non plus. J'étudie actuellement les flux d'entrée et de sortie, donc je ne sais pas vraiment ce que je pourrais faire d'autre pour résoudre ce problème. Toute aide sera très appréciée.PrintWriter ne pas écrire dans le fichier. [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();
}
}
}
Vous ne fermez jamais le 'PrintWriter' – 3kings
vous lisez dans un fichier texte vide .. votre programme n'a rien à analyser – tmaxxcar
essayez de passer dans un fichier texte avec 1 ou 2 lignes d'échantillons pour voir ce que, le cas échéant, vous les erreurs obtenir – tmaxxcar