相关疑难解决方法(0)

在Java中,当我调用OutputStream.close()时,我是否总是需要先调用OutputStream.flush()?

如果我只是close()在输出流中调用,输出是保证的,还是需要我flush()总是调用?

java file-io

41
推荐指数
4
解决办法
3万
查看次数

如何在Java中打开txt文件并读取数字

如何打开.txt文件并将输入或空格分隔的数字读入数组列表?

java

35
推荐指数
3
解决办法
24万
查看次数

在Java中关闭输入流

我在try/catch块中有以下代码段

 InputStream inputstream = conn.getInputStream();
 InputStreamReader inputstreamreader = new  InputStreamReader(inputstream);
 BufferedReader bufferedreader = new BufferedReader(inputstreamreader);
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我必须关闭finally块中的这些流时,是否必须关闭所有3个流,或者只是关闭befferedreader将关闭所有其他流?

java inputstream

24
推荐指数
2
解决办法
8896
查看次数

当我关闭BufferedInputStream时,底层的InputStream是否也关闭了?

InputStream in = SomeClass.getInputStream(...);
BufferedInputStream bis = new BufferedInputStream(in);

try {
    // read data from bis
} finally {
    bis.close();
    in.close();    
}
Run Code Online (Sandbox Code Playgroud)

javadoc for BufferedInputStream.close()未提及底层流是否已关闭:

关闭此输入流并释放与该流关联的所有系统资源.关闭流后,进一步的read(),available(),reset()或skip()调用将抛出IOException.关闭先前关闭的流无效.

显式调用是in.close()必要的,还是应该通过调用来关闭bis.close()

java inputstream bufferedinputstream

18
推荐指数
3
解决办法
7252
查看次数

在Java中:从网络路径读取时出现"打开文件太多"错误

我有下面的代码,它只是从文件夹中读取所有文件.此文件夹中有20,000个文件.该代码在本地文件夹(d:/files)上运行良好,但//robot/files在读取大约1,000 - 2,000个文件后在网络路径()上失败.

更新:文件夹是彼此的副本.

是什么导致这个问题以及如何解决它?

package cef_debug;

import java.io.*;

public class Main {

    public static void main(String[] args) throws Throwable {
        String folder = args[0];
        File[] files = (new File(folder)).listFiles();
        String line;
        for (int i = 0; i < files.length; i++) {
            BufferedReader br = new BufferedReader(new FileReader(files[i]));
            while ((line = br.readLine()) != null) {
            }
            br.close();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

从网络路径(//robot/files)读取时出现以下错误:

Exception in thread "main" java.io.IOException: Too many open files
        at java.io.FileInputStream.open(Native Method) …
Run Code Online (Sandbox Code Playgroud)

java io networking

9
推荐指数
1
解决办法
1662
查看次数

在callable.call中没有关闭的BufferedReader会发生什么?

我有三个问题.

为了解释,我正在审查某人的代码,并注意到BufferedReader有时候没有关闭.通常,Eclipse会发出警告,这是一个潜在的内存泄漏(我修复了它).但是,在Callable内部类中,没有警告.

class outerClass {
    ...
    public void someMethod() {
        Future<Integer> future = outputThreadPool.submit(new innerClass(this.myProcess.getInputStream(), threadName));
        ...
    }

    class innerClass implements Callable<Integer> {
        private final InputStream stream;
        private final String prepend;

        innerClass(InputStream stream, String prepend) {
            this.stream = stream;
            this.prepend = prepend;
        }

        @Override
        public Integer call() {
            BufferedReader stdOut = new BufferedReader(new InputStreamReader(stream));
            String output = null;
            try {
                while ((output = stdOut.readLine()) != null) {
                    log.info("[" + prepend + "] " + output);
                }

            } catch …
Run Code Online (Sandbox Code Playgroud)

java eclipse callable inner-classes bufferedreader

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

Java File.delete()不会删除所有文件

我有以下Java代码,它遍历目录中的所有文件并删除它们.

for(File file : tmpDir.listFiles())
{
    file.delete();
}
Run Code Online (Sandbox Code Playgroud)

但它不会删除所有文件.当我这样做时,一些,通常是20到30,中有几千.是否有可能解决这个问题,或者我偶然发现了一些最好独自留下的Java巫毒?

java delete-file

4
推荐指数
1
解决办法
2215
查看次数

关闭缓冲读取器是强制性的

我试图从 http://www.roseindia.net/java/beginners/java-read-file-line-by-line.shtml 中举例说明BufferReader未关闭是否需要关闭BufferReader或不关闭?请解释.

FileInputStream fstream = new FileInputStream("textfile.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null)   {
    // Print the content on the console
    System.out.println (strLine);
}
//Close the input stream
in.close();
Run Code Online (Sandbox Code Playgroud)

java

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