Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从某一行读到某一行?_Java_Bufferedreader_Filereader_Readline_Printwriter - Fatal编程技术网

Java 如何从某一行读到某一行?

Java 如何从某一行读到某一行?,java,bufferedreader,filereader,readline,printwriter,Java,Bufferedreader,Filereader,Readline,Printwriter,例如,我想从第20056行到第1159450行读取一个文本文件,并将其输出到输出窗口,但我不知道如何执行,因为方法line.readline()从第一行开始 这是我的代码: String line; int currentLineNo = 1; int startLine = 20056;//40930; int endLine = 1159450; FileReader file = new FileReader("yourfilepath"); BufferedReader reader

例如,我想从第20056行到第1159450行读取一个文本文件,并将其输出到输出窗口,但我不知道如何执行,因为方法
line.readline()
从第一行开始

这是我的代码:

String line;
int currentLineNo = 1;
int startLine = 20056;//40930;
int endLine = 1159450;

FileReader file = new FileReader("yourfilepath");
BufferedReader reader = new BufferedReader(file);

PrintWriter writer = new PrintWriter("yourfilepath", "UTF-8");

while (currentLineNo < startLine) {
    currentLineNo++;
}

while(currentLineNo >= startLine && currentLineNo <= endLine) {
    // System.out.println(currentLineNo);
    line = reader.readLine();

    System.out.println(line);
    // writer.println(line);
    currentLineNo++;
}

reader.close();
writer.close();
字符串行;
int currentLineNo=1;
int STARTINE=20056//40930;
int endLine=1159450;
FileReader file=新的FileReader(“您的文件路径”);
BufferedReader reader=新的BufferedReader(文件);
PrintWriter=新的PrintWriter(“您的文件路径”、“UTF-8”);
while(currentLineNo=stringline&¤tLineNo
字符串行;
int currentLineNo=1;
int startine=20056;//40930;
int endLine=1159450;
FileReader file=新的FileReader(“您的文件路径”);
BufferedReader reader=新的BufferedReader(文件);
PrintWriter=新的PrintWriter(“您的文件路径”、“UTF-8”);
while(currentLineNo=startLine&¤tLineNo(代表OP发布解决方案)

我只需要删除第一个while循环

String line;
    int currentLineNo = 1;
    int startLine = 20056;//40930;
    int endLine = 1159450;

    FileReader file = new FileReader("yourfilepath");
    BufferedReader reader = new BufferedReader(file);

    PrintWriter writer = new PrintWriter("yourfilepath", "UTF-8");

    while(currentLineNo<=endLine) 
    {
        line = reader.readLine();
        if(currentLineNo >= startLine && currentLineNo<=endLine) 
        {  System.out.println(line); }

        currentLineNo++;
    }

    reader.close();
    writer.close();
字符串行;
int currentLineNo=1;
int startine=20056;//40930;
int endLine=1159450;
FileReader file=新的FileReader(“您的文件路径”);
BufferedReader reader=新的BufferedReader(文件);
PrintWriter=新的PrintWriter(“您的文件路径”、“UTF-8”);

while(currentLineNo=startine&¤tLineNo在第一个
while
循环中,您没有推进
读卡器
。如果调用
reader.readLine()
在循环内部,每次迭代都会使用一行。这里可能重复类似的问题:如何将读取行与currentLineNo@khelwood关联?如何不读取我不想要的前几行?@khelwoodIt仍然打印第一行:/i需要它只打印从第20056行到第1159450行的内容请尝试使用jays代码你的第一个while循环被注释掉了。它成功了!我只需要删除第一个while循环非常感谢jay!祝你有一个愉快的一天:DWorked。谢谢你spanglerb:DThank jay他做了这件重担:-)我听说接受答案是一个很好的感谢礼物。
String line;
    int currentLineNo = 1;
    int startLine = 20056;//40930;
    int endLine = 1159450;

    FileReader file = new FileReader("yourfilepath");
    BufferedReader reader = new BufferedReader(file);

    PrintWriter writer = new PrintWriter("yourfilepath", "UTF-8");

    while(currentLineNo<=endLine) 
    {
        line = reader.readLine();
        if(currentLineNo >= startLine && currentLineNo<=endLine) 
        {  System.out.println(line); }

        currentLineNo++;
    }

    reader.close();
    writer.close();