2012-07-01 2 views
-1

J'essaie de mettre à jour un fichier .txt contenant une liste de films et certaines informations en demandant à l'utilisateur de me fournir ces informations. Le fichier est organisé comme suit:Ajout de texte de saisie utilisateur au fichier .txt

0000-Movie Title Goes Here-9.99-ClientID 
0001-Same thing here-9.99-CLIENTID2 

Et ainsi de suite.

Voici le code que je utilise:

BufferedWriter output = new BufferedWriter(new FileWriter("movies.txt", true)); 
    System.out.println("Inserte numero de la pelicula:\n"); 
    String pelNum = CTeclado.ReadString(); 
    System.out.println("Inserte el titulo de la pelicula:\n"); 
    String pelName = CTeclado.ReadString(); 
    System.out.println("Inserte el precio de la pelicula:\n"); 
    String pelPrice = CTeclado.ReadString(); 
    output.append(pelNum + "-" + pelName + "-" + pelPrice + "-null"); 
    output.close(); 
    ReadM(); 
    System.out.println("Pelicula agregada!\n"); 
    MainMenu(); 

(La chose CTeclado est utilisé pour l'entrée de lecture)
Cette compile sans erreur, cependant, il n'y a aucun changement dans le fichier réel .... Qu'est ce qui ne va pas avec mon code?

+0

est le fichier vous essayez de modifier dans le même dossier que le fichier jar? Si vous spécifiez uniquement le nom de fichier sans chemin, java suppose que le fichier se trouve dans le même dossier que le code source en cours d'exécution. De même, veuillez vous conformer aux conventions de nommage Java. Les noms de variable et de méthode commencent par une lettre minuscule. – fireshadow52

+0

Oui c'est, en fait, j'ai essayé de mettre tout le chemin du fichier sur le terrain et obtenir le même résultat. Je suis conscient, la classe CTeclado et ses méthodes m'ont été transmises par quelqu'un d'autre, et c'est une classe longue, je l'éditerai plus tard. – iVikD

+0

Oups! J'ai complètement raté le fait que vous utilisiez la mauvaise méthode! Utilisez le ['write()'] (http://docs.oracle.com/javase/1.4.2/docs/api/java/io/Writer.html#write (java.lang.String,% 20int,% 20int)) pour écrire des choses dans le fichier: 'output.write (" les choses vont ici ");' – fireshadow52

Répondre

1

Je pense que vous devriez essayer le code ci-dessous

PrintStream output = new PrintStream(new File("movies.txt")); 
output.append(pelNum + "-" + pelName + "-" + pelPrice + "-null").append("\n"); 
+0

Cela a finalement fonctionné mieux à la fin puisque ma méthode de suppression laisse toujours une ligne vide à la fin du fichier. Merci beaucoup! – iVikD

0

L'utilisation de output.write("\n" + "stuff goes here) a fonctionné comme @ fireshadow52.
output.append("\n" + "stuff") également travaillé, a dû assurer que le fichier txt terminé exactement à la fin de la ligne (et non sur une nouvelle ligne)

Questions connexes