运行时Exception in thread "main" java.lang.NullPointerException

miemieyan 2010-03-05 10:26:27
这是我的源代码~不知道哪里错了~请教~谢谢
import java.io.*;
public class Grade
{
public static void main(String args[])
{
int num,average,num1,num2;
char ch;
FileInputStream fin;
DataInputStream din=null;
try{
while ((ch=din.readChar())!='\n')
{
fin=new FileInputStream("d:\\test\\1.txt");
din=new DataInputStream(fin);
ch=din.readChar();
num1=din.readInt();
num2=din.readInt();
num=num1+num2;
average=((num1+num2)/2);
System.out.println(ch+num+average);
}
System.out.println("输出完毕");
}
catch (Exception e)
{
System.out.println("Error!");
}

}
}

运行出现Exception in thread "main" java.lang.NullPointerException
...全文
205 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
abc409992359 2010-03-05
  • 打赏
  • 举报
回复
可惜你已经做出来了,俺来晚了
miemieyan 2010-03-05
  • 打赏
  • 举报
回复
我终于做出来了~谢谢大家:
import java.io.*;
public class Grade
{
public static void main(String args[])
{
String line = null;
FileReader fr = null;
BufferedReader br = null;
try
{
fr = new FileReader("d:\\STUDY\\test\\1.txt");
br = new BufferedReader(fr);
while (null != (line = br.readLine()))
{
int num, average;
String[] strArr = line.split(" ");
String name = strArr[0];
int num1 = Integer.valueOf(strArr[1]);
int num2 = Integer.valueOf(strArr[2]);
if ((num1 >= 0 | num1 <= 100) && (num2 >= 0 | num2 <= 100))
{
num = num1 + num2;
average = (num1 + num2) / 2;
System.out.println("姓名:" + name + " 总成绩:" + num + " 平均成绩:" + average);
}
}
System.out.println("输出完毕");
br.close();
}
catch (Exception e)
{
System.out.println("Error!");
}
}
}
miemieyan 2010-03-05
  • 打赏
  • 举报
回复
因为要读取文本文件,所以改成了一下:。。。但是运行不了
import java.io.*;
public class Grade
{
public static void main(String args[])
{
String line = null;
FileReader fr = null;
BufferedReader br = null;
try
{
fr = new FileReader("d:\\test\\1.txt");
br = new BufferedReader(fr);
while (null != (line = br.readLine()))
{
int num, average;
String[] strArr = line.split(" ");
String name = strArr[0];
int num1 = Integer.valueOf(strArr[1]);
int num2 = Integer.valueOf(strArr[2]);
if ((num1 >= 0 | num1 <= 100) && (num2 >= 0 | num2 <= 100))
{
num = num1 + num2;
average = (num1 + num2) / 2;
System.out.println("姓名:" + name + " 总成绩:" + num + " 平均成绩:" + average);
}
}
System.out.println("输出完毕");
br.close();
}
catch (Exception e)
{
System.out.println("Error!");
}
}
}
stu202060510 2010-03-05
  • 打赏
  • 举报
回复
public class Grade {
public static void main(String args[]) {
int num, average, num1, num2;
char ch;
FileInputStream fin;
DataInputStream din = null;
try {
fin = new FileInputStream("d:\\test\\1.txt");
din = new DataInputStream(fin);
while ((ch = din.readChar()) != '\n') {
ch = din.readChar();
num1 = din.readInt();
num2 = din.readInt();
num = num1 + num2;
average = ((num1 + num2) / 2);
System.out.println(ch + num + average);
}
System.out.println("输出完毕");
} catch (Exception e) {
e.printStackTrace();
}
}
}

我改了一下,在1.txt中输入dd11;运行后,抛java.io.EOFException。估计应该还是ch = din.readChar()这边的问题
期待高手解决一下
stu202060510 2010-03-05
  • 打赏
  • 举报
回复
while ((ch = din.readChar()) != '\n') { //这一句出错
ch为null.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧