Gavekort Skrevet 29. november 2011 Del Skrevet 29. november 2011 (endret) Hei! Jeg ønsker å modifisere denne koden slik at jeg oppretter filen første gang, og så fortsetter jeg å skrive til den for hver gang jeg kaller inn funksjonen. public void endgame() throws IOException{ highscore = 56 - table.size(); try { FileWriter fstream = new FileWriter("highscore.txt"); BufferedWriter out = new BufferedWriter(fstream); out.write(highscore +"\n"); //Close the output stream out.close(); }catch (Exception e){//Catch exception if any System.err.println("Error: " + e.getMessage()); } } Hvordan kan jeg gjøre dette? Endret 29. november 2011 av Gavekort Lenke til kommentar
Mr. Purple Skrevet 29. november 2011 Del Skrevet 29. november 2011 File f = new File(filePathString); if(!f.exists()) { lag ny fil } Skriv til fil Lenke til kommentar
Gavekort Skrevet 29. november 2011 Forfatter Del Skrevet 29. november 2011 (endret) Hvordan ser "skriv til fil"-koden ut? Akkurat nå har jeg jo: FileWriter fstream = new FileWriter("highscore.txt"); Endret 29. november 2011 av Gavekort Lenke til kommentar
HV Skrevet 29. november 2011 Del Skrevet 29. november 2011 /** * Constructs a FileWriter object given a file name with a boolean * indicating whether or not to append the data written. * * @param fileName String The system-dependent filename. * @param append boolean if <code>true</code>, then data will be written * to the end of the file rather than the beginning. * @throws IOException if the named file exists but is a directory rather * than a regular file, does not exist but cannot be * created, or cannot be opened for any other reason */ public FileWriter(String fileName, boolean append) throws IOException { super(new FileOutputStream(fileName, append)); } FileWriter fstream = new FileWriter("highscore.txt", true); 1 Lenke til kommentar
Laserbeam Skrevet 5. desember 2011 Del Skrevet 5. desember 2011 (endret) Hva med å bruke en PrintStream java.io.PrintStream ps new java.io.PrintStream(new FileOutputStream("highscore.txt")); ps.println(highscore); ps.close(); ps = null; Endret 5. desember 2011 av Gnålern Lenke til kommentar
Bjells Skrevet 9. desember 2011 Del Skrevet 9. desember 2011 Vil du forsette å skrive under der du skrev sist gang? Ikke overskriving altså? pw = new PrintWriter(new FileWriter("hifhscore.txt", true)); pw.println("halla"); Med true forsetter du på linjen under. Lenke til kommentar
Kiff Skrevet 12. desember 2011 Del Skrevet 12. desember 2011 Husk at FileWriter også må lukkes med close(), og dette bør helst gjøres i en finally block public static void writeToFile(File file, String... text) { if (file == null || text == null) { // log or print error return; } if (!file.exists()) { try { file.createNewFile(); } catch (IOException e) { // log or print } } FileWriter fw = null; BufferedWriter bw = null; try { fw = new FileWriter(file, true); //Append bw = new BufferedWriter(fw); for (String s : text) { bw.write(s); } } catch (IOException e) { // log or print } finally { if (bw != null) { try { bw.close(); } catch (IOException e) { } } if (fw != null) { try { fw.close(); } catch (IOException e) { } } } } Hvis du bruker Java7 og ikke trenger å være bakoverkompatibel kan du bruke try with resources: http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå