gpt4 book ai didi

java - 尝试将文本文件逐行加载到数组中,但数组保持为空,我做错了什么? (Java,安卓工作室)

转载 作者:太空宇宙 更新时间:2023-11-03 13:53:36 25 4
gpt4 key购买 nike

private String[] words;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDecorView = getWindow().getDecorView();

loadWords();

TextView tv = (TextView) findViewById(R.id.word);
tv.setText(words[0]);
}

public void loadWords()
{

try {
InputStream file = new FileInputStream("words.txt");
InputStreamReader sr = new InputStreamReader(file);
BufferedReader br = new BufferedReader(sr);

int n = 0;
while(br.readLine() != null)
{
words[n] = br.readLine();
n++;
}

} catch (IOException e) {
e.printStackTrace();
}
}

好的,所以我只是想打印出数组中的第一个元素,但应用程序在启动期间崩溃并给我错误“尝试从空数组读取”

编辑 - 解决方案
-我没有初始化数组。(我知道我有 100 行)
-我的输入流不正确(找不到我的文件)
-我试图从第二个布局(当时未选择)更新 TextView

String[] words = new String[100];

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDecorView = getWindow().getDecorView();
loadWords();
}

public void changeView(View view) {

setContentView(R.layout.game_view);
TextView tv = (TextView) findViewById(R.id.word);
tv.setText(words[0]);
}

public void loadWords()
{
try {
BufferedReader br = new BufferedReader(new InputStreamReader(getAssets().open("words.txt")));
for(int i = 0;i<words.length;i++)
{
words[i] = br.readLine();
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}

最佳答案

您需要初始化数组,但您没有这样做。数组的声明和初始化是不同的,不是吗?

数组的初始化是这样的:

private String[] words = new String[2000];

请尝试。但是,尝试用 ArrayList 代替 array

关于java - 尝试将文本文件逐行加载到数组中,但数组保持为空,我做错了什么? (Java,安卓工作室),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32375923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com