Ciao a tutti, io sto scrivendo un programma in java, e ho bisogno di supporto.
il problema principale e' che stiamo lavorando su file..
Il programma dovrebbe caricare un file, aprire il buffer e in base al metodo richiamato dal main, muovere giu il buffer, mi spiego meglio:
ho una classe Server in cui ho il main e una classe map in cui creo l'oggetto di tipo mappa.
L'oggetto di tipo mappa non e' nient'altro che la fullString del file che dovra' essere caricato..
A questo punto e' stato inizializzato il file gameBoard che e' la mappa..public class MapF {
public MapF(String aMaps) throws IOException {
map = aMaps;
mapPath = "it/unibo/cs/csrobots/maps/";
realPath = mapPath.concat(map);
File gameBoard = new File(realPath);
Il server innanzitutto richiama questo costruttore, ma poi io ho bisogno di fare diverse modifiche su questo file e mi trovo difronte che ogni metodo della classe MapF inizia con queste righe:
Ora mi chiedo.. esiste un modo di inizializzare il tutto 1 volta sola e richiamare solamente il buffer? io ho cercato di dichiarare private all'interno della classe mapF il tutto.. ma gli altri metodi richiamati poi danno errore:File gameBoard = new File(realPath);
FileInputStream fis = new FileInputStream(gameBoard);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String mapLine = br.readLine();
Vorrei non scrivere quelle porzioni di codice, dato che il main risultera' gia veraemnte lungo.. mi stavo chiedendo se era possibile fare quelle procedure una volta sola e fare modo si che i metodi di mapF funzionino senza dover tutte le volte riscrivere e reinizializzare tutto..Exception in thread "main" java.lang.NullPointerException
Magari scrivere un'altra classe che intervenga all'interno dei metodi..
Vi incollo un esempio di un metodo di mapF, che ricava dal file un informazione contando la lungheza della stringa caricata.
Come vedete viene richiamato ancora una volta il tutto..public int highMap() // altezza, map.highMap
throws IOException {
File currentMap = new File(map);
FileInputStream fis = new FileInputStream(currentMap);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String mapLine = br.readLine();
mapHigh = 0;
while (mapLine != null) {
mapHigh++;
mapLine = br.readLine();
}
return mapHigh;
}
La questione e' urgente spero qualcuno mi venga in soccorso.

Rispondi quotando
