小编Lot*_*tix的帖子

了解BufferedReader在Java中的工作方式

关于BufferedReader如何工作的非常基本的问题。给定字符串/短语,我想从其中包含很多文本的文件中查找并打印它。

在Java中使用BufferedReader对此主题进行了一些研究,这是最接近的结果。虽然不能完全解决我的问题。

因此,有了这些信息,为什么以下代码会终止?

public class MainApp {

String line = null;
String phrase = "eye";

try {
    File file = new File("text.txt");
    FileReader fr = new FileReader(file);
    BufferedReader br = new BufferedReader(fr);

    while((line = br.readLine()) != null) {
        if (line.equals(phrase) {
            System.out.println(line);
           }
        }

    br.close();

} catch (Exception e) {
   e.printStackTrace();
  }
 }
}
Run Code Online (Sandbox Code Playgroud)

我对这个区块应如何运作的了解:

  • while循环遍历文本的每一行,直到条件不再成立为止
  • 每行都存储在BufferedReader中
  • 循环一直工作到满足if(line.equals(phrase)的条件 。
  • 打印找到的词组。

为什么我认为它可能 不会 工作:

  • readlines不会作为字符串存储在BufferedReader中(因此无法进行比较)

  • 错误的逻辑(很可能是if语句)

为了简单起见,让我们假设“ text.txt”充满了非常长的传说ipsum,并且在其中间的某个地方加上了一个“ eye”字。

问题到底在哪里?(如果可能的话,请不要提供完整的代码解决方案,为了练习,我很乐意亲自完成编码工作)。

java filereader bufferedreader

5
推荐指数
2
解决办法
8480
查看次数

"方法main不能声明为static;静态方法只能在静态或顶级类型中声明"

class Perkusja {
  boolean talerze = true;
  boolean beben = true;

  void zagrajNaBebnie() {
    System.out.println("bam, bam, baaaa-am-am");
  }
  void zagrajNaTalerzach() {
    System.out.println("brzd?k, brzbrzrzd??k");
  }
  class PerkusjaTester {
    public static void main(String[] args) {
        Perkusja p = new Perkusja();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

}

你好!我是stackoverflow的新手,所以请原谅我糟糕的编辑.

我是Java的新手,我无法弄清问题到底在哪里以及问题是什么.我在行上收到以下错误 public static void main(String[]args):

方法main不能声明为static; 静态方法只能在静态或顶级类型中声明

我正在使用eclipse,我正在做一些简单的java练习.我搜索了问题,但答案通常与更复杂的代码相关.

我如何解决它以及导致以下错误的原因是什么?我很感激对这个特殊例子的解释.

干杯!

java static program-entry-point compilation

2
推荐指数
1
解决办法
2万
查看次数