簡體   English   中英

Android Studio:將掃描程序中的字符串存儲在/ assets中的文件的String數組中

[英]Android Studio: Storing Strings from a scanner in a String array from a file in /assets

我目前正在嘗試從我創建的/ main / assets文件夾中的list.txt文件中獲取行。

我正在嘗試將此list.txt文件中的每一行存儲到一個字符串數組,但是我不確定如何在Android Studio中獲取.getLine()的java等效項?

到目前為止,這是我的代碼:

private String[] line;
private InputStream is;
private static int NUMBER_OF_LINES = 640;
public void getLines(){
    AssetManager am = getAssets();
    try {
        is = am.open("list.txt");
    }catch(Exception e){
        Log.v("GLOBAL_VARIABLES","FILE IS NOT FOUND!");
    }
    Scanner s = new Scanner(is);
    String w[] = new String[NUMBER_OF_LINES];

    for (int i =1; i<= NUMBER_OF_LINES; i++){
        w[i] = is.toString().nextLine(); // This is what i need
    }

如果我在此方面做任何其他錯誤,請通知我。 這是我制作的第一個Android應用程序之一。

編輯:

所以這就是我想要做的:

讀取文件

獲取該文件的第一行

將該行存儲在String數組中

轉到下一行

得到那條線

將該行存儲在String數組中

漂洗+重復直到計數器達到640

我希望它足夠詳細,謝謝您的任何幫助!

只需確認使用LineNumberReader即可。

AssetManager assets = getAssets();

try {
  InputStream in = assets.open("list.txt");
  LineNumberReader lin = new LineNumberReader(new InputStreamReader(in));
  String line;
  while((line = lin.readLine()) != null) {
    Log.i(TAG, "read a line: " + line);
  }
} catch (IOException e) {
  Log.e(TAG, "Error reading assets!", e);
}

這是我文件的內容:

line 1
line 2
line 3
this is a long line
line 4

這是我的日志的輸出:

11-30 13:10:32.730 2154-2154/mobappdev.assetstest I/AssetsTestLog: read a line: line 1
11-30 13:10:32.730 2154-2154/mobappdev.assetstest I/AssetsTestLog: read a line: line 2
11-30 13:10:32.730 2154-2154/mobappdev.assetstest I/AssetsTestLog: read a line: line 3
11-30 13:10:32.730 2154-2154/mobappdev.assetstest I/AssetsTestLog: read a line: this is a long line
11-30 13:10:32.730 2154-2154/mobappdev.assetstest I/AssetsTestLog: read a line: line 4

如果您提前知道文件中的行數,則可以修改while循環並改用for循環。 我的文件有5行,因此我可以這樣重寫上面的代碼:

String[] lines = new String[5];
for(int i=0; i<lines.length; i++) {
  lines[i] = lin.readLine();
  Log.i(TAG, "read line: " + lines[i]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM