输入输出流,循环有关问题
输入输出流,循环问题
F盘下有aa.txt文件内容如下
60
70
65
70...如此竖排顺序往下,共17个数字
求其平均数
打了断点,while循环到16个都可以正常累加,但是第17个就报错了,错误代码为:
ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [../../../src/share/back/util.c:838]
百度搜索为JDK问题,我将while循环改成for,虽然只能执行2位相加但是能正常输出,应该不是JDK的问题吧,求教
------解决方案--------------------
用你的代码我做了下测试,按你的要求我发现没错!!但我发现要是把你的aa.txt中的某行数字的前面或者后面加上空格时就不能打印出结果,建议楼主把
------解决方案--------------------
while((line=br.readLine())!=null){
line=line.trim();
if("".equals(line)){
continue;
}
total+=Integer.parseInt(line);
n++;
}
注意去掉空行,编码时要小心。
F盘下有aa.txt文件内容如下
60
70
65
70...如此竖排顺序往下,共17个数字
求其平均数
package demo1;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
public class AVGStream {
public static void main(String[] args) {
try{
File file=new File("F:\\aa.txt");
FileInputStream fis=new FileInputStream(file);
InputStreamReader is=new InputStreamReader(fis);
BufferedReader br=new BufferedReader(is);
String line=null;
int n = 0;
double total = 0;
while((line=br.readLine())!=null)
{
total+=Integer.parseInt(line);
n++;
}
double avg=(total/n);
System.out.println(avg);
}
catch(Exception ex)
{}
}
}
打了断点,while循环到16个都可以正常累加,但是第17个就报错了,错误代码为:
ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [../../../src/share/back/util.c:838]
百度搜索为JDK问题,我将while循环改成for,虽然只能执行2位相加但是能正常输出,应该不是JDK的问题吧,求教
------解决方案--------------------
用你的代码我做了下测试,按你的要求我发现没错!!但我发现要是把你的aa.txt中的某行数字的前面或者后面加上空格时就不能打印出结果,建议楼主把
total+=Integer.parseInt(line);这行代码改为
total+=Integer.parseInt(line.trim());看一下行不
------解决方案--------------------
while((line=br.readLine())!=null){
line=line.trim();
if("".equals(line)){
continue;
}
total+=Integer.parseInt(line);
n++;
}
注意去掉空行,编码时要小心。