java.io.FileNotFoundException (слишком много открытых файлов) FileReader vs BufferedReader - PullRequest
0 голосов
/ 09 марта 2019

Java-код:

for (int i=0; i<13000; i++){
    new FileReader("helloWorld.txt");
}

дает:

> Exception in thread "main" java.io.FileNotFoundException: helloWorld.txt (Too many open files)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:112)
at java.base/java.io.FileReader.<init>(FileReader.java:60)
at Main.main(Main.java:14)

И это нормально, так как не хватает системных ресурсов. Но я понятия не имею, почему это работает:

for (int i=0; i<13000; i++){
    new BufferedReader(new FileReader("helloWorld.txt"));
}

Поскольку даже между FileReader и BufferedReader есть много отличий, все еще существует: новый FileReader ("helloWorld.txt") - так что, не должно ли он выходить из ресурсов, как в 1-м случае?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...