try {
FileInputStream fstream = new FileInputStream("C:\\Users\\xxx\\Desktop\\nginx.access.log");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
List<String> list = new ArrayList<String>();
/* read log line by line */
while ((strLine = br.readLine()) != null)
{
/* parse strLine to obtain what you want */
list.add(strLine);
}
String[] stringArr = list.toArray(new String[0]);
for (int i=0;i<stringArr.length;i++)
{
System.out.println(stringArr[i]);
}
fstream.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
System.out.println(stringArr[0]);
->第一行时
txt 还System.out.println(stringArr[1]);
->第二行txt等。
但是当我使用for循环打印所有文本行时,它以随机行开始。
对于循环代码,我看不到任何错误。我需要您的帮助。
答案 0 :(得分:1)
对我来说,您的代码有效。测试文件的所有行均以正确的顺序打印。
是不是控制台的行数有限?如果限制为100行,您将在打印105行之后松开前5行。然后,看起来您的程序开始首先打印第六行。
Windows的cmd行数有限。 Eclipse的设置可以限制/限制行数。
要检查是否是您的问题,请执行程序并将其输出重定向到文件中,然后将该文件与原始文件进行比较:
crypt()