本帖最后由 miemieyan 于 2010-03-05 22:31:20 编辑

解决方案 »

  1.   

    while ((ch = din.readChar()) != '\n') { //这一句出错
    ch为null.
      

  2.   

    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()这边的问题
    期待高手解决一下
      

  3.   

    因为要读取文本文件,所以改成了一下:但是运行不了
    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!");
    }
    }
    }
      

  4.   

    我终于做出来了~谢谢大家:
    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!");
    }
    }
    }