1

这是我的程序。它不应该打印以单词“LTP”开头的句子或包含单词“TRAILING”的句子,但它不会那样做……我不明白为什么。请帮帮我。

import java.io.*;

public class FileInputDemo {
    public static void main(String args[]) {
        // args.length is equivalent to argc in C
        try {
            // Open the file that is the first
            // command line parameter
            FileInputStream fstream = new FileInputStream(
                    "C:\\Documents and Settings\\work\\Desktop\\New Folder\\New Folder\\02Apr2013log1.txt");
            // Convert our input stream to a
            // DataInputStream
            DataInputStream in = new DataInputStream(fstream);
            // Continue to read lines while
            // there are still some left to read
            while (in.available() != 0) {
                String s=in.readLine();
                // Print file line to screen
            if(s.startsWith("LTP") || s.contains("TRAILING"))
            {
                continue;
            }

            System.out.println(in.readLine());
            }

            in.close();
        } catch (Exception e) {
            System.err.println("File input error");
        }
    }
}

这是输出

Long trade Managers in list (from Limit removal process) 2
LTP 9708.0 Current Stop 9723.0 for Order ID BAA0001 Mode:- TRAILING
9711.0 9716.0 9707.0 9707.0 9710.62
BullishFactor [openBullishFactor=NEUTRAL, closeBullishfactor=BEARISH, closeToOpenFactor=MODERATE_BEARISH]
BarSharing [sharingType=LLLH, bodySharing=0.44]
LTP 9707.0 Current Stop 9717.0 for Order ID BAA0001 Mode:- TRAILING
4

2 回答 2

3

System.out.println应该打印字符串s吗?

 while (in.available() != 0) {
     String s=in.readLine();

     if(s.startsWith("LTP") || s.contains("TRAILING"))
     {
         continue;
     }

     System.out.println(s);
 }

如果您要打印出来in.readLine(),那么您刚刚阅读的行(存储在 中s)之后的行可能包含“TRAILING”或以“LTP”开头。

于 2013-04-09T05:49:59.790 回答
0

不再从行中读取System.out.println(in.readLine());. 它将读取下一行而不检查 LTP | TRAILING 在线可用。将其替换为System.out.println(s);

于 2013-04-09T05:50:06.360 回答