从文件中读取不同类型的数据

时间:2015-05-24 19:59:31

标签: java algorithm file loops

因此,对于作业,我必须采用一个看起来像的文件:

2141512   
Math
68

7493674
History
82

8403785
English
23

4213432
French
75

7556463
Science
97

2345215
ICS
49

学生编号越长,2位数字就是编号,我需要一个程序来读取文件并创建其他2个文件。一个显示那些传递的主题和标记(pass.txt)和一个显示谁失败了他们的类(fail.txt)。到目前为止,我已经去了,但我不知道如果我应该把它全部读成字符串并将标记转换为整数,我不知道如何将这些行读作不同的数据类型

import java.io.*;

public class WriteKONG
{
 public static void main(String[] args) throws IOException
 {
     BufferedReader in;
     in = new BufferedReader(new InputStreamReader(System.in));
       String line;
       int i;

    PrintWriter fail;
    PrintWriter pass;
    fail = new PrintWriter(new FileWriter("fail.txt"));
    pass = new PrintWriter(new FileWriter("pass.txt"));
    in = new BufferedReader(new FileReader("marks.txt"));
    line = in.readLine();
    i = Integer.valueOf(line).intValue();
    while (line  != null);
    {
    if (line != "English" || line != "Math" || line != "Science" || line != "ICS" || line != "History" || line != "French")
        do { i = Integer.valueOf(line).intValue();
        pass.println();

         i = Integer.valueOf(line).intValue();
         while(line <= 50 || line < 101);
         i = Integer.valueOf(line).intValue();
         if (line >= 49 ){
         fail.println();
         }
         i = Integer.valueOf(line).intValue();
         if (line >= 50 || line < 101){
         pass.println();i = Integer.valueOf(line).intValue();

         }

     } 
       while (line != null);
    }
  }
}             

2 个答案:

答案 0 :(得分:0)

使用Scanner及其next()nextInt()方法。

Usage example与你拥有的相似。

答案 1 :(得分:0)

您正在使用Java File API的正确途径,您需要做的就是对代码进行一些调整。

  1. 不要将字符串与==进行比较,而是使用line.equals("English")
  2. 如果使用||

  3. ,您需要先替换所有&&
  4. 您需要使用Integer.parseInt(line)

  5. 您需要在每个while语句后删除;。 (否则这些是无限循环)

  6. 我希望这可以提供帮助,尝试调试你的逻辑。