美好的一天!我一直在尝试创建一个函数,它将返回位于raw文件夹的文本文件中的行数,但我似乎总是得到0。
继承我正在使用的功能:
int getFileSize (InputStreamReader p_is) {
int lineCtr = 0;
try {
BufferedReader br = new BufferedReader(p_is);
String theLine="";
lineCtr = 0;
while ((theLine = br.readLine()) != null) {
lineCtr++;
}
} catch (Exception e) {
e.printStackTrace();
}
return lineCtr;
}
然后我将可变大小传递给另一个活动:
InputStreamReader is = new InputStreamReader(getResources().openRawResource(R.raw.sampleTxt));
int size = getFileSize(InputStreamReader is);
intent.putExtra("v_size", size);
startActivity(intent);
然后我在其他活动中检索它:
fileSize = getIntent().getIntExtra("v_size",0);
当我尝试显示fileSize时,它总是显示0:
message= (TextView) findViewById(R.id.tv_message);
String strSize = Integer.toString(fileSize);
message.setText(strSize);
我尝试在putExtra()中传递一个字符串,但它也显示为0.请更正您看到的任何错误,并感谢您的帮助。
答案 0 :(得分:2)
这是你的行
int size = getFileSize(InputStreamReader is);
在那里不需要InputStreamReader
,在编译代码时应该显示错误。不确定你是如何设法运行的。
所以你必须删除它,然后它应该能够读取你想要的行和计数。
或者当您将代码写入此处时,此getFileSize(InputStreamReader is)
只是一个复制/粘贴错误?
答案 1 :(得分:0)
尝试使用此代码:
public static int countLine(String s){
int ct=0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='\n')
ct++;
}
return ct;
}
String s是读取文本文件的结果,我尝试了这段代码,并且它正常工作