0

Ich habe möglicherweise wifi2.txt Datei in meinem Assets Dateiverzeichnis in Android Studio. Ich erhalte jedoch immer eine NULLPointException, wenn ich versuche, darauf zuzugreifen. Mein Code ist unten: (Vielen Dank im Voraus) enter image description hereWie lese ich eine Textdatei aus Assets in Android Studio?

   //CSV FILE READING 
    File file = null; 



    try { 



     FileInputStream is = new FileInputStream(file); 

     try { 
      BufferedReader reader = new BufferedReader(new InputStreamReader(getAssets().open("wifi2.txt"))); 
      String line; 
      Log.e("Reader Stuff",reader.readLine()); 
      while ((line = reader.readLine()) != null) { 
       Log.e("code",line); 
       String[] RowData = line.split(","); 
       LatLng centerXY = new LatLng(Double.valueOf(RowData[1]), Double.valueOf(RowData[2])); 
       if (RowData.length == 4) { 
        mMap.addMarker(new MarkerOptions().position(centerXY).title(String.valueOf(RowData[0]) + String.valueOf(RowData[3])).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))); 
       } 

      } 

     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } finally { 
      try { 
       is.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 


    //Done with CSV File Reading 
+0

'new Fileinputstream (null)' aufrufen würde offensichtlich NPE verursachen ... – Selvin

+0

Mögliche Duplikat [Was für eine Nullpointer ist, und wie kann ich es beheben?] (Http: // stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-fix-it) – Selvin

Antwort

1
File file = null; 
try { 
    FileInputStream is = new FileInputStream(file); 

Eigentlich sind Sie nicht überall mit Fileinputstream. Gerade dieses Stück Code verwenden

try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(getAssets().open("wifi2.txt"))); 
     String line; 
     Log.e("Reader Stuff",reader.readLine()); 
     while ((line = reader.readLine()) != null) { 
      Log.e("code",line); 
      String[] RowData = line.split(","); 
      LatLng centerXY = new LatLng(Double.valueOf(RowData[1]), Double.valueOf(RowData[2])); 
      if (RowData.length == 4) { 
       mMap.addMarker(new MarkerOptions().position(centerXY).title(String.valueOf(RowData[0]) + String.valueOf(RowData[3])).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))); 
      } 

     } 

    } catch (IOException ex) { 
     ex.printStackTrace(); 
    } 
+0

Perfekt, das hat funktioniert –

0

Verbrauch:String yourData = LoadData("wifi2.txt");

Wo wifi2.txt angenommen wird, in assets

public String LoadData(String inFile) { 
     String tContents = ""; 

    try { 
     InputStream stream = getAssets().open(inFile); 

     int size = stream.available(); 
     byte[] buffer = new byte[size]; 
     stream.read(buffer); 
     stream.close(); 
     tContents = new String(buffer); 
    } catch (IOException e) { 
     // Handle exceptions here 
    } 

    return tContents; 

} 

Reference aufzuhalten

0

Methode eine Datei von Vermögenswerten zu lesen:

public static String readFile(AssetManager mgr, String path) { 
     String contents = ""; 
     InputStream is = null; 
     BufferedReader reader = null; 
     try { 
      is = mgr.open(path); 
      reader = new BufferedReader(new InputStreamReader(is)); 
      contents = reader.readLine(); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
       contents += '\n' + line; 
      } 
     } catch (final Exception e) { 
      e.printStackTrace(); 
     } finally { 
      if (is != null) { 
       try { 
        is.close(); 
       } catch (IOException ignored) { 
       } 
      } 
      if (reader != null) { 
       try { 
        reader.close(); 
       } catch (IOException ignored) { 
       } 
      } 
     } 
     return contents; 
    }