[英]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.