Ich versuche, den Unterschied zwischen Datendateien, die im Ordner "Assets" gespeichert sind, und denen, die im Ordner "res/raw" gespeichert sind, zu verstehen. Mein Ziel ist es, eine Datendatei in der App-Verzeichnisstruktur zu speichern, in der (in diesem Fall) Testergebnisse gespeichert werden, auf die zugegriffen werden kann und die dann geändert werden können. Es ist mein Verständnis, dass ich dafür eine ASSET anstelle der RAW-Datei verwenden muss.Verwenden Sie eine Textdatei, die im Ordner ASSETS gespeichert ist
Ich habe es geschafft, die Daten aus der Textdatei in ein Array zu laden, wenn die Textdatei im RES/RAW-Ordner gespeichert wurde, aber ich kann es jetzt nicht arbeiten, da ich eine ASSET-Datei verwende. Ich dachte, es war so einfach wie AssetManager.open.
Letztlich ist meine eine Frage das. Wie lese und schreibe ich in eine Textdatei im ASSET-Ordner?
Hier ist mein Code:
public class MainActivity extends AppCompatActivity {
String[][] testScoreList = new String[3][3];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Load test scores into arraylist
nameArrayListMethod();
}
//This method loads test scores into an array
public void nameArrayListMethod(){
InputStreamReader InputSR = null;
BufferedReader BufferedRdr = null;
String thisLine = null;
AssetManager am = getAssets();
InputSR = new InputStreamReader(am.open("test_scores.txt"));
BufferedRdr = new BufferedReader(InputSR);
try {
// open input stream test_scores for reading purpose.
int i = 0;
while ((thisLine = BufferedRdr.readLine()) != null) {
// System.out.println(thisLine);
String[] parts = thisLine.split(" ");
testScoreList[i][0] = parts[0];
testScoreList[i][1] = parts[1];
i = i +1;
}
} catch (Exception e) {
e.printStackTrace();
}
Ich erhalte eine Unhandled exception: java.io.IOException
eror auf der (am.open("test_scores.txt"))
Linie.
Beifall für die Eingabe
Warum gibt es eine Ausnahme? Die Datei test_scores.txt existiert. Ihre Lösung funktioniert übrigens, aber ich verstehe nicht warum. – Airfix
Es wirft keine Ausnahme, aber es könnte aufgrund unvorhergesehener Dinge. Das Lesen und Schreiben von Dingen gehört zu diesen risikoreicheren Dingen. Im Gespräch mit einem Server wird es schlimmer ... – Flummox