jjzjj

bufferedinputstream

全部标签

java - `BufferedInputStream.available()` 是否可以安全地获取已收到的字节?

我想从BufferedInputStreamistream接收一些数据,这些数据环绕着来自Socket的流。数据首先包含一个字节n(8位无符号整数),然后包含实际消息的n字节(二进制格式,而非字符串)。所以我写了如下代码(未测试):publicbyte[]getNextMessageBytes()throwsIOException{//Makesurethe"length"byteisreadytobereadif(this.istream.available()length){//Peekthebytes...this.istream.mark(length+1);//Skipsth

java - BufferedInputStream available() 占用 CPU

我正在从套接字(通过TCP协议(protocol))读取消息,但我注意到CPU花费大量时间来调用BufferedInputStream的available()方法。这是我的代码:@Overridepublicvoidrun(){Socketsocket;Scannerscanner;BufferedInputStreambuffer=null;try{socket=newSocket(SERVER_HOST,SERVER_PORT);System.out.println("ConnectionCompleted");InputStreaminputStream=socket.getIn

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

这个问题在这里已经有了答案:ClosinginputstreamsinJava(6个答案)关闭3年前。InputStreamin=SomeClass.getInputStream(...);BufferedInputStreambis=newBufferedInputStream(in);try{//readdatafrombis}finally{bis.close();in.close();}BufferedInputStream.close()的javadoc没有提到底层流是否关闭:Closesthisinputstreamandreleasesanysystemresources

android - Dalvik 消息 - BufferedInputStream 构造函数中使用的默认缓冲区大小。如果需要 8k 缓冲区,最好是明确的

当我使用BufferedInputStream并指定缓冲区大小时,Dalvik给了我这个警告-BufferedInputStream构造函数中使用的默认缓冲区大小。如果需要8k缓冲区,最好是明确的。但是现在,我的缓冲区大小已经是8k。我做错了什么? 最佳答案 只需使用:BufferedReaderbr=newBufferedReader(newInputStreamReader(is),8192);代替:BufferedReaderbr=newBufferedReader(newInputStreamReader(is));注意:8

mongodb - Mongo中的SocketException

我刚刚在Mongo(产品环境)中设置了一个副本集。我现在遇到很多异常,如下所示(已剪辑)。我进入mongo并在我的主mongo节点上运行了一个serverStatus命令,并且只有大约300个连接,所以它几乎无法正常工作。以下是我的服务器代码中的连接选项设置:auto_connect_retry=falseconnections_per_host=10threads_multiplier=10max_wait_time=120000connect_timeout=10000socket_timeout=0我的配置有误吗?Sep9,20138:31:26PMcom.mongodb.DBP

mongodb - Mongo中的SocketException

我刚刚在Mongo(产品环境)中设置了一个副本集。我现在遇到很多异常,如下所示(已剪辑)。我进入mongo并在我的主mongo节点上运行了一个serverStatus命令,并且只有大约300个连接,所以它几乎无法正常工作。以下是我的服务器代码中的连接选项设置:auto_connect_retry=falseconnections_per_host=10threads_multiplier=10max_wait_time=120000connect_timeout=10000socket_timeout=0我的配置有误吗?Sep9,20138:31:26PMcom.mongodb.DBP

java - BufferedReader 和 BufferedInputStream 的区别

BufferedReader、BufferedInputStream、Scanner在java中有什么区别?BufferedReader读取文本,BufferedInputStream读取byte。除此之外还有什么不同吗? 最佳答案 我猜,阅读器和输入流之间的区别是一样的:一个是基于字符的,另一个是基于字节的。比如阅读器一般支持编码...编辑:检查这个问题:ThedifferencebetweenInputStreamandInputStreamReaderwhenreadingmulti-bytecharacters

java - 为什么BufferedInputStream将字段复制到局部变量而不是直接使用字段

当我从java.io.BufferedInputStream.getInIfOpen()读取源代码时,我很困惑为什么它会写出这样的代码:/***Checktomakesurethatunderlyinginputstreamhasnotbeen*nulledoutduetoclose;ifnotreturnit;*/privateInputStreamgetInIfOpen()throwsIOException{InputStreaminput=in;if(input==null)thrownewIOException("Streamclosed");returninput;}为什么它

java - 为什么BufferedInputStream将字段复制到局部变量而不是直接使用字段

当我从java.io.BufferedInputStream.getInIfOpen()读取源代码时,我很困惑为什么它会写出这样的代码:/***Checktomakesurethatunderlyinginputstreamhasnotbeen*nulledoutduetoclose;ifnotreturnit;*/privateInputStreamgetInIfOpen()throwsIOException{InputStreaminput=in;if(input==null)thrownewIOException("Streamclosed");returninput;}为什么它

多线程导出word

导出word,以下为导出单个和zip的两种格式。CountDownLatch运用CountDownLatch和ExecutorService线程池cachedThreadPool.submit1、CountDownLatch概念CountDownLatch可以使一个获多个线程等待其他线程各自执行完毕后再执行。CountDownLatch定义了一个计数器,和一个阻塞队列,当计数器的值递减为0之前,阻塞队列里面的线程处于挂起状态,当计数器递减到0时会唤醒阻塞队列所有线程,这里的计数器是一个标志,可以表示一个任务一个线程,也可以表示一个倒计时器,CountDownLatch可以解决那些一个或者多个线