Salve a tutti,
in riassunto ho un semi-gioco di scacchi in cui le pedine sono delle stringhe riposte in un file txt.
In una classe (newGame) voglio cancellare il file dell'utente per crearlo uno nuovo e copiarci il contenuto di un altro file txt (conf.txt) che si trova all'interno del jar, sotto la cartella Resources.
In Eclipse tutto va liscio, ma una volta creato il file JAR che vado ad eseguire da terminale mi dice:
codice:
file:/Users/lorenzomazzante/Desktop/ChessGame.jar!/ChessGame/conf.txt (No such file or directory) in questa specifica directory.
Vi posto il codice di questa funzione:
codice:
package ChessGame;
import java.io.*;
import java.net.URI;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class newGame {
private static final String ArrayPezzi = null;
String pathPezziMod; // definiamo la variabile in cui inserire in seguito il percorso del file txt
public newGame(String pathP) throws FileNotFoundException, IOException {
pathPezziMod=pathP;
File f = new File(pathPezziMod); // Creo un oggetto file
boolean success = f.delete(); // Provo a cancellare il file
// Se si è verificato un errore...
if (!success) throw new IllegalArgumentException("Cancellazione fallita");
try {
File url = new File(this.getClass().getResource("conf.txt").getFile()); // apro il file conf.txt
File f2 = new File(pathPezziMod);
InputStream in = new FileInputStream(url);
OutputStream out = new FileOutputStream(f2, true);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) { // copiatura
out.write(buf, 0, len);
}
in.close(); // chiudo file sorgente
out.close(); // chiudo file destinazione
System.out.println("RESET SCACCHIERA COMPLETATO");
}catch (FileNotFoundException ex) {
System.out.println(ex.getMessage() + " in questa specifica directory.");
System.exit(0);
}catch (IOException e) {
System.out.println(e.getMessage());
}
verConf indirizzonewGame = new verConf(pathPezziMod);
} // chiusura newGame
} // chiusura class newGame
La cartella del progetto è così impostata:
CG (
src (
ChessGame (
chessGame.java
inserisci.java
Legenda.java
mossa.java
newGame.java
package-info.java
verConf.java
Visualizza.java
conf.txt
)
)
)
JRE SystemLibrary
)