Bir NPE üreten FileReader

oy
-1

Ben telefon yeniden yoksa kendimi oldukça iyi okumak benim cihazda yerel olarak depolanan bir dosya var. Ben yeniden başlatın ve günlükleri okurken, yeni FileReader bir NPE atar; niye ya?

BufferedReader br = null;
FileReader fr = null;
    try {
        Log.d(DEBUG, Before filereader);
        fr = new FileReader(ABS_FILENAME);
        Log.d(DEBUG, Before BufferedReader);
        br = new BufferedReader(fr);

        String current;

        Log.d(DEBUG, About to read file);
        while((current = br.readLine()) != null) {

        }
    }
    } catch (Exception e) {
        Log.d(DEBUG, Exception thrown:  + e.getMessage());
    } finally {
        try {
            if (fr != null) {
                fr.close();
            }
        } catch (IOException ex) {
            Log.d(DEBUG, Problem closing file reader);
        }
    }
    return null;

Yukarıdaki kod, bir yayın alıcısı olur. ABS_FILENAME bir dosya gösterir bir dizedir. bir şey tıklandığında kez bu dosyayı bir Faaliyet periyodik yazılır:

// in an onClick that gets invoked
try {
            String line = myKey +   + myValue;
            fw.write(line);
            fw.write(System.getProperty(line.separator));
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if(fw != null)
                    fw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

// elsewhere in the activity
@Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);

    myFile = new File(getFilesDir(), FILENAME);
    try {
        if (!myFile.exists()) {
            myFile.createNewFile();
        }
        ABS_FILENAME = myFile.getAbsolutePath();
        fw = new FileWriter(myFile.getAbsoluteFile(), true);
    } catch(IOException e) {
    }
Oluştur 15/01/2015 saat 22:52
kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
0

Eğer

new FileReader(ABS_FILENAME)

Gerçekten üretir NullPointerException,açıkça ABS_FILENAMEboş olmalıdır.

Cevap 15/01/2015 saat 23:24
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more