Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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中关闭读取inputStream_Java_Android_Mobile_Inputstream - Fatal编程技术网

如何在java中关闭读取inputStream

如何在java中关闭读取inputStream,java,android,mobile,inputstream,Java,Android,Mobile,Inputstream,即使我关闭了输入流,它也没有关闭。 我不知道如何关闭输入流,因为我对这个还是新手 下面的代码用于发送数据 while (socket!=null) { BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder out = new StringBuilder();

即使我关闭了输入流,它也没有关闭。 我不知道如何关闭输入流,因为我对这个还是新手 下面的代码用于发送数据

while (socket!=null)
            {

                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
                StringBuilder out = new StringBuilder();
                String line;

                try {


                    while ((line = reader.readLine()) != null) {
                        out.append(line);
                    }
                    handler.obtainMessage(MESSAGE_READ_DONE,out.toString()).sendToTarget(); 
                    reader.read();
                    reader.close();
       }
                } catch (IOException e) {
                    e.printStackTrace();
                }finally {
                    try {
                        if (reader != null){
                            reader.close();
                        }
                    }catch (IOException e){
                        e.printStackTrace();
                    }
                }
            }
        }
这是用于写入数据的

public void write(byte[] bytes)
        {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    if (outputStream!=null){
                        try {
                            outputStream.write(bytes);

                            outputStream.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }else {
                        Toast.makeText(MainActivity.this, "null data", Toast.LENGTH_SHORT).show();
                    }
                }
            }).start();
        }
    }

提前感谢您的帮助

您可以这样关闭缓冲读卡器。您认为关闭缓冲读卡器可以解决您的问题


reader.close()

阅读器!=null始终返回true,因为BufferedReader已初始化。没有检查读取器是否已关闭的方法或解决方法。

如何检查inputStream是否未关闭?当我调试时,在while((line=reader.readLine())!=null){out.append(line);}好的,那么如何关闭它呢?我只看到你是在hat代码之后关闭它的。那就是,我想像那样关闭输入流,有没有关闭输入流的代码?对你想关闭的流使用
.close()
。但这并不是你所需要的。放在哪里?