Bug avec l'utilisation d'un scanner pour lire un fichier
Bonjour,
Lorsque je lis un fichier a l'aide d'un scanner :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
@TargetApi(Build.VERSION_CODES.KITKAT)
void read()
{
String wordBuild = "empty" ;
int val1, val2 ;
try( Scanner scanner = new Scanner( new InputStreamReader( context.openFileInput("map0") ) )){
while ( scanner.hasNext()) {
if ( scanner.hasNextInt()) {
int valu1 = scanner.nextInt();
int valu2 = scanner.nextInt();
resourceHandler.build( wordBuild, valu1, valu2 ) ;
}
else {
wordBuild = scanner.next();
}
}
} catch (IOException e) {
}
} |
il lit bien le fichier, en l’occurrence, il met en place la map, mais si je quitte mon programme et le relance, il plante.
Si je met rien dans ma fonction write, cela fonctionne en revanche :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
void write(){
FileOutputStream fOut = null;
OutputStreamWriter osw = null;
InputStream strem ;
context.deleteFile("map0");
try{
fOut = context.openFileOutput("map0", Context.MODE_APPEND);
osw = new OutputStreamWriter(fOut);
int xx = 150, yy = 48;
int valX = resourceHandler.unitSize ;
int valY = resourceHandler.unitSize/4;
int c1 = 0, c2 = 0, vS = valX/4 ;
String wordd = "sea" ;
for ( int cont = 0 ; cont < 400 ; cont ++ )
{
osw.write( wordd + ' ' + ( valX*c1 + vS + valX/4 ) + ' ' + valY*c2 + ' '); // si j'enlève cette ligne, il ne construit rien, et ca ne plante pas lorsque je redémarre mon application.
c1 ++ ;
if (c1 > 10 ){ c1 = 0 ; c2++ ; vS = -vS ;}
if ( cont == 200 ){ wordd = "desert";}
}
}
catch (Exception e){
//addMoney(100);
}
finally {
try {
osw.close();
fOut.close();
} catch (IOException e) {
}
} |
Avez vous une idée d'où celà peut venir ?
Merci