0

関連するものは何も見つかりませんでした(解析質問が何百もある場合でも):

古き良きウェブサイトのカウンターと同様に、SDカードのtxtファイルに番号を保存するのが好きです。メソッドがアプリケーションでアクティブ化されるたびに、いくつかのtxtファイルを読み取り、1を追加して、再度保存する必要があります。

以下のコードを試してみると、Intではなく奇妙な文字列が作成されます。この問題を解決する方法は?:-(

FileWriter writer;
File file;
FileInputStream fileIS;  

public void implementCounter()
{
    File sdcard = Environment.getExternalStorageDirectory();
    int counter = 0;

    try{

           File f = new File(sdcard +"/Experiment/Counter.txt");             
           fileIS = new FileInputStream(f);          
           BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS));                               
           //counter = Integer.parseInt(buf.readLine());
           String readString = new String();             

           //just reading each line and pass it on the debugger          
           /*while((readString = buf.readLine())!= null){            
              Log.d("line: ", readString);           
           }*/
           readString = buf.readLine();
           try {
                counter = Integer.parseInt(readString.toString());
            } catch(NumberFormatException nfe) {
               Log.d("line: ", "XXX: " + readString + "E");
            } 


        } catch (FileNotFoundException e) {          
           e.printStackTrace();          
        } catch (IOException e){             
           e.printStackTrace();          
        }


    //Create / Write LogFile
    file = new File(sdcard + "/Experiment/Counter.txt");

    try 
    {
        counter++;
        writer = new FileWriter(file ,false);
        writer.write(counter);         
        writer.flush();
        writer.close();
    } 
    catch (IOException e) 
    {
        e.printStackTrace();
    }
}

新しいFileWriterは、古いファイルを1つ上の番号で上書きするだけです。

4

1 に答える 1

0

これら 2 つの関数は静的です。これらを使用して、カウントを取得し、保存 (設定) できます。詳細については、SharedPreferencesに精通してみてください。どういたしまして (:

    private static boolean setMyLovelyCount(Context mContext, int value) {
        SharedPreferences prefs = mContext.getSharedPreferences(
                "mylovelyprefs", 0);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putInt("mylovelyCount", value);
        return editor.commit();
    }

    private static int getMyLovelyCount(Context mContext, int defaultvalue) {
        SharedPreferences prefs = mContext.getSharedPreferences(
                "mylovelyprefs", 0);
        return prefs.getInt("mylovelyCount", defaultvalue);
    }
于 2012-04-23T12:37:43.573 に答える