在java中阅读不同的行

时间:2015-04-03 13:34:51

标签: java

我有像

这样的file.txt
  

7 10 5
  ADD_FLIGHT SV221 Jeddah NewYork 30 7000
  ADD_FLIGHT SV223 Jeddah London 30 4000
  ADD_FLIGHT SV225 Jeddah Paris 30 3500
  ADD_FLIGHT SV227 Jeddah Cairo 30 2000
  ADD_PASS Mohammed Ali 33 M 0555788778
  ADD_PASS Sara Maghrabi 30 F 0555111111
  ADD_PASS Hani Ali 20 M 0555223344
  ADD_PASS Mohammed Hafeth 33 M 0555889876
  ADD_PASS Ahmad Sami 44 M 0555768768
  ADD_FLIGHT SV332 Jeddah Riyadh 20 500
  ADD_FLIGHT SV334 Jeddah Dammam 20 600
  ADD_FLIGHT SV367吉达迪拜25 2000年   ADD_PASS Salwa Ali 33 F 0555765672
  ADD_PASS Faisal Amri 20 M 0555111111
  ADD_PASS Mona Saleem 33 F 0555222112
  ADD_PASS Ali Ali 33 M 0555743344
  ADD_PASS Marwa Ahmad 33 F 0555545855

我想要读取第2,3,4,5,11,12,13行而没有ADD_FLIGHT语句

我的代码

File fin = new File("input.txt");
FileInputStream fis = new FileInputStream (fin);
BufferedReader br = new BufferedReader (new InputStreamReader (fis));
System.out.println(br.readLine());

此代码读取第一行,如:

  

7 10 5

我想要读取第2,3,4,5,11,12,13行而没有ADD_FLIGHT语句

请帮助:(

1 个答案:

答案 0 :(得分:2)

1) Read line by line in java.
2) Check if line contains ADD_FLIGHT
3) if it contains ADD_FLIGHT, replace ADD_FLIGHT with "" and print it

这是执行此操作的代码。

try{
    FileInputStream fstream = new FileInputStream("textfile.txt");
    DataInputStream in = new DataInputStream(fstream);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    String strLine;
    while ((strLine = br.readLine()) != null) {
        if (strLine.contains("ADD_FLIGHT")) {
            System.out.println (strLine.replace("ADD_FLIGHT",""));
        } 
    }
    in.close();
}catch (Exception e){//Catch exception if any
    System.err.println("Error: " + e.getMessage());
}