Bonjour,

Lorsque je lis un fichier a l'aide d'un scanner :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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