Ich versuche mir selbst beizubringen, wie man eine Rohdaten-Textdatei in ein multidimensionales Array ohne viel Glück bisher lesen kann. Hier ist die rohe Textdatei:Wie referenziere ich meine rohe TXT-Datei mit FileReader?
ken todd
stuart brian
bob stewart
orange apple
green red
Der Code, den ich habe, wird unten gezeigt.
public void LoadFromFile(){
// int fileId = (getResources().getIdentifier("text_file",
// "raw", getPackageName()));
Scanner scan = new Scanner(new FileReader(R.raw.text_file);
// initialises the scanner to read the text_file
String[][] entries = new String[6][2];
// creates a 2d array with 6 rows and 2 columns.
int i = 0;
while (scan.hasNextLine()) {
entries[i] = scan.nextLine().split("\\s+");
i++;
}
//loops through the file and splits on a space
for (int row = 0; row < entries.length; row++) {
for (int col = 0; col < entries[0].length; col++) {
if (entries[row][col] != null) {
System.out.print(entries[row][col] + " ");
}
}
if (entries[row][0] != null) {
System.out.print("\n");
}
}
//prints the contents of the array that are not "null"
}
Ich erhalte einen Fehler in der Scannerzeile. Insbesondere Filereader (R.raw.text_file) bekomme ich
kann nicht aufgelöst werden Konstruktor ‚Filereader (int)‘
Offensichtlich Filereader ist für einen int suchen, und ich versuchte, das zu tun, indem Sie die Datei-ID setzen int eine int-Variable und dann die int-Variable im FileReader, aber das hat auch nicht funktioniert.
int fileId = (getResources().getIdentifier("text_file",
"raw", getPackageName()));
Scanner scan = new Scanner(new FileReader(fileId);
Es gab mir den gleichen Fehler
Kann Konstruktor 'Filereader (int)'
nicht lösen Was ich falsch hier? Hat jemand Tipps, wie man eine Datei in ein Array bringt?
Prost
Airfix
Doug, ich bin nah dran, eine Lösung mit Ihrer Hilfe zu bekommen. Sehen Sie meinen Kern hier. https://gist.github.com/Airfixed/799e784696b0a60c5423d347bf33a341 Wenn jedoch eine leere Zeile in der TXT-Datei ist, funktioniert es nicht. Wie berechne ich eine Leerzeile? – Airfix