1

彼は私のコードです:

File f;
    FileInputStream inputStream;
    byte[] buffer = null;
    try {
        f=new File("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq");
        if(f.exists()){
        inputStream =  new FileInputStream(f);
        inputStream.read(buffer);
        }


         Log.i("informacja","Czytam");
    } catch (Exception e) {
        // TODO Auto-generated catch block

        Log.i("informacja",e.toString());
    } 

ファイル パスは正しく、ファイルは存在します。しかし、常にinputStream.read(buffer)でNullPointerExceptionを取得します。これは私のマニフェストの一部です:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

誰かが私がどこで間違いを犯したか教えてもらえますか?

@アップデート。コードスニペットをありがとう。今、私は読むことができますが: これは私が得るものです: [B@41a743c8 私が得るべきもの: 1000000

4

3 に答える 3

1

/sysAndroid アプリケーションは、変更されていないデバイスではルートとして実行されないため、デバイスをルート化しないとフォルダーから読み取ることはできません。

于 2013-05-28T12:18:10.227 に答える
1

問題はここにあります -->byte[] buffer = null;そしてinputStream.read(buffer);

バッファはまだnullです。これを試してください:

    InputStream is = new FileInputStream(f);
    byte[] b = new byte[is.available()];
    is.read(b);

これが役に立てば幸いです、幸運を祈ります^^

PS必要なすべての権限を設定することを忘れないでください

編集

ファイルを読み取るには、解析する必要があります。文字列の内容から得られる文字列は、次のようにして取得できます。String fileContent = new String(b); //the byte we read earlier

そこから、ファイルを解析して必要な値を取得する必要があります。ファイルを解析するには、ファイル構造を理解し、必要に応じて解析メソッドを作成する必要があります。

于 2013-05-28T12:21:27.290 に答える