有谁知道为什么会崩溃?我正在做的就是从我的原始文件夹中读取txt文件中的文件,当我单击其他活动窗口中的加载按钮时,当我在单击时调用文件读取器对象中的变量测试时,代码会中断。 log.d(null,ReadFileObject.fileText)提前谢谢!
public class ReadFile extends Activity{
public String test;
public String testing;
protected void onCreate(Bundle savedInstanceState) {
}
public void fileText() {
InputStream fis;
fis = getResources().openRawResource(R.raw.checkit);
byte[] input;
try {
input = new byte [fis.available()];
while(fis.read() != -1)
{
test += new String (input);
}
testing = test;
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(e.getMessage());
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(e.getMessage());
}
/* InputStream fis = null;
try {
fis = getResources().openRawResource(R.raw.checkit);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String nextLine;
int i = 0, j = 0;
while ((nextLine = br.readLine()) != null) {
if (j == 5) {
j = 0;
i++;
}
test += nextLine;
}
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
} finally {
if (fis != null) {
try { fis.close(); }
catch (IOException ignored) {}
}
}*/
}
}
答案 0 :(得分:0)
你的代码在这里打破了:
byte[] input;
input = new byte [fis.available()];
while(fis.read() != -1) {
test += new String (input);
}
testing = test;
fis.close();
在Java中available()
是不可靠的(read the Javadoc) ....甚至可能返回0.您应该使用类似于的循环:
InputStream fis = getResources().openRawResource(R.raw.checkit);
try {
byte[] buffer = new byte[4096]; // 4K buffer
int len = 0;
while((len = fis.read(buffer)) != -1) {
test += new String (buffer, 0, len);
}
testing = test;
} catch (IOException ioe) {
ioe.printStackTrace();
// make sure you do any other appropriate handling.
} finally {
fis.close();
}
(尽管使用字符串连接可能不是最好的主意,但请使用StringBuilder)。
答案 1 :(得分:-1)
您的课程延伸`activity
但oncreate
内没有任何内容。如果您需要一个简单的java
程序,请尝试创建New java Project
。由于您延长了activity
,因此您应该setcontentview(yourLayout)
。然后从oncreate调用你的method
并做你的东西