这是我的程序。它不应该打印以单词“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
答案 0 :(得分: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”开头。
答案 1 :(得分:0)
请勿在{{1}}中再次阅读该行。它将读取下一行而不检查LTP | TRAILING可在线上获得。将其替换为System.out.println(in.readLine());