运行时Exception in thread "main" java.lang.NullPointerException 本帖最后由 miemieyan 于 2010-03-05 22:31:20 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 while ((ch = din.readChar()) != '\n') { //这一句出错ch为null. 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()这边的问题期待高手解决一下 因为要读取文本文件,所以改成了一下:但是运行不了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!"); } }} 我终于做出来了~谢谢大家: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!"); } }} 饿汗式单例是线程安全的吗 谁能给个较为全面的思路(软件设计) 优化 RegExp 分数倾囊而出!结贴率100% jasperreport 报错 路径问题? 怎样将"L_LIST":"id""name""L_LIST":"id""name""L_LIST":"id""name""L_LIST":"id""name"解 请问,如何把对分词一个个的放到某个文本中? 十分不错的电子图书下载网站,大家可以去看看 java初学者的困惑 在jbuilder6或者7中怎样集成junit呢? ####问个 小 题目 JSplitPane LeftComponent 大小
ch为null.
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()这边的问题
期待高手解决一下
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!");
}
}
}
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!");
}
}
}