我用textSplitter
编写了一个类,并在MainActivity.java中编写了一些代码
但是我遇到了致命的运行时异常。
public class textSplitter {
public String myText(BufferedReader bufferedReader,StringBuilder stringBuilder,String line,String fin) throws IOException {
while ((line=bufferedReader.readLine()) != null) {
stringBuilder.append(line);
stringBuilder.append('\n');
}
fin = stringBuilder.toString();
return fin;
}
public String[] txtConverter(String[] text,String fin) {
text = fin.split("\\$");
return text;
}
}
主要活动:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InputStream is = this.getResources().openRawResource(R.raw.text1);
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
StringBuilder stringBuilder = new StringBuilder();
String line = null;
String fin = null;
String[] text = null;
textSplitter myClass = new textSplitter();
try {
myClass.myText(br,stringBuilder,line,fin);
myClass.txtConverter(text,fin);
TextView myText = (TextView) findViewById(R.id.text);
myText.setText(text.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
你的问题在这里
myClass.myText(br,stringBuilder,line,fin);
因为您从未将fin
的值设置为结果。
尝试
fin = myClass.myText(br,stringBuilder,line,fin);
当你这样做时,这应该避免你的NPE
text = fin.split("\\$");