草庐IT

inputstreams

全部标签

java的InputStream获取字节大小相关方法

java的InputStream获取字节大小相关方法1通过StreamUtils工具类的copyToByteArray()方法获取(推荐)正常大部分项目都是使用的Spring,而Spring已经帮我们开发好了相应的工具类,我们直接调用即可。InputStreamis=this.getClass().getResourceAsStream(filePath);byte[]bytes=StreamUtils.copyToByteArray(is);is.read(bytes);2通过available()方法获取(不推荐)InputStreamis=this.getClass().getResou

java - 什么时候关闭 PreparedStatement.setBlob 使用的 InputStream 是安全的?

PreparedStatement.setBlob、PreparedStatement.setBinaryStream和少数其他PreparedStatement方法可以从中读取查询数据输入流。不幸的是,文档对何时读取数据一点也不清楚。它只是说datawillbereadfromthestreamasneededuntilend-of-fileisreached.对于何时需要数据,我可以想到三种可能的解释:在调用setBlob(或其他具有InputStream参数的方法)返回之前语句执行时事务提交时那么,在什么时候关闭InputStream(或相关InputStream所依赖的其他资源

java把InputStream流写入到文件中

基于流(Stream)的解决流是单向的有方向性的描述信息流的对象,InputStream是输入流的接口,对程序来说是入,是读,可以从文件读,缓存区读,网络节点读等等.写入文件,对程序来说是出,是写,就是FileOutputStream,可以写入int也可以byte[]所以解决方案就是从InputStream中读出内存到byte[]中然后,使用FileOutputStream写入文件中如:InputStreamis=newFileInputStream("a.txt");FileOutputStreamfos=newFileOutputStream("b.txt");byte[]b=newbyt

java - 从 InputStream 读取所有字节

我想从Activitytcp连接的InputStream中异步读取所有字节。输入缓冲区中可能没有任何内容,在这种情况下,我想要一个空字节数组[]而不是读取/超时。我试过这个:byte[]bytes=IOUtils.toByteArray(tcpInputStream);但如果InputStream中没有任何内容,读取将挂起,直到tcp超时,然后抛出异常。 最佳答案 您可以使用非阻塞SocketChannels:importjava.net.InetSocketAddress;importjava.nio.ByteBuffer;imp

ios - 在 Swift 4 中从 InputStream 中准确读取 n 个字节

我有一台服务器通过TCP向我发送消息,其中前4个字节决定消息其余部分的长度。所以我需要1)将4个字节读入UInt32(有效)并将其存储到bytes_expected2)将bytes_expected字节读入消息现在我的代码是这样的:privateletinputStreamAccessQueue=DispatchQueue(label:"SynchronizedInputStreamAccess")funcinputStreamHandler(_event:Stream.Event){switchevent{caseStream.Event.hasBytesAvailable:self

java - Java InputStream 到 OutputStream 的非阻塞回显

它已经建立了以下代码,看起来运行良好:voidpipe(InputStream,OutputStreamos){try{try{byte[]buf=newbyte[1024*16];intlen,available=is.available();while((len=is.read(buf,0,available>0?available:1))!=-1){os.write(buf,0,len);available=is.available();if(available以前,我发现如果我调用is.read(buf),那么,即使数据可用,它也会阻塞等待更多数据,直到缓冲区已满。这是一个用于

swift - 将 InputStream 读入 Data 对象

在Swift3.x中,我们通常使用Data来处理二进制数据;您可以从中生成大多数其他重要类型,并且上面有一些有用的函数。但是如何从InputStream创建一个Data呢?有什么好的方法吗? 最佳答案 我找不到好的方法。我们可以围绕不安全的东西创建一个漂亮的包装器:extensionData{init(readinginput:InputStream)throws{self.init()input.open()defer{input.close()}letbufferSize=1024letbuffer=UnsafeMutableP

java - 如何创建受约束的 InputStream 以只读取文件的一部分?

我想创建一个限制在文件中特定字节范围的InputStream,例如从位置0到100的字节。这样,一旦达到第100个字节,客户端代码就应该看到EOF。 最佳答案 InputStream的read()方法一次读取一个字节。您可以编写维护内部计数器的InputStream的子类;每次调用read()时,更新计数器。如果您已达到最大值,则不允许进一步读取(返回-1或类似的值)。您还需要确保不支持读取read_int等的其他方法(例如:覆盖它们并抛出UnsupportedOperationException());我不知道您的用例是什么,但作

java - 从 Enumerator[Array[Byte]] 创建 Java InputStream

为了在我的应用程序中实现一个新模块,我阅读了很多关于Iteratees和Enumerators的文章。我现在正处于与第3方Java库集成的阶段,并且一直坚持使用此方法:publicEmailaddAttachment(Stringname,InputStreamfile)throwsIOException{this.attachments.put(name,file);returnthis;}我的API中的内容是WSHTTP调用返回的主体,它是一个Enumerator[Array[Byte]]。我现在想知道如何编写一个Iteratee来处理Array[Bytes]的block并创建一个