Gå til innhold

Skrive til samme fil, en linje hver gang.


Anbefalte innlegg

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 av Gavekort
Lenke til kommentar
Videoannonse
Annonse
/**
    * 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);

  • Liker 1
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...