草庐IT

inputstreams

全部标签

Java InputStream 等待数据。

我正在开发服务器-客户端应用程序,但在等待输入流上的输入数据时遇到问题。我有线程专用于读取输入数据。目前它使用while循环来保持直到数据可用。(注意协议(protocol)如下:发送数据包的大小,比如N,作为int然后发送N个字节)。publicvoidrun(){//someinitializationInputStreaminStream=sock.getInputStream();byte[]packetData;//somemorestuffwhile(!interrupted){while(inStream.available()==0);packetData=newbyt

java - 如何表示一个空的 InputStream

我正在减少InputStreams的流,如下所示:InputStreamtotal=input.collect(Collectors.reducing(empty,Item::getInputStream,(is1,is2)->newSequenceInputStream(is1,is2)));对于标识InputStream,我使用:InputStreamempty=newByteArrayInputStream(newbyte[0]);这可行,但是是否有更好的方法来表示一个空的InputStream? 最佳答案 从Java11开始

java - 读取 InputStream 到 Arraylist

我必须读取一个包含一个字符串的dict.txt文件并将它们添加到数组列表中。我试过这个:publicArrayListmyDict=newArrayList();InputStreamis=(getResources().openRawResource(R.raw.dict));BufferedReaderr=newBufferedReader(newInputStreamReader(is));try{while(r.readLine()!=null){myDict.add(r.readLine());}}catch(IOExceptione){//TODOAuto-generate

java - 在 Java 6 中将 InputStream 写入文件的有效方法

我将从第三方库获取输入流到我的应用程序。我必须将此输入流写入文件。以下是我试过的代码片段:privatevoidwriteDataToFile(Stubstub){OutputStreamos=null;InputStreaminputStream=null;try{inputStream=stub.getStream();os=newFileOutputStream("test.txt");intread=0;byte[]bytes=newbyte[1024];while((read=inputStream.read(bytes))!=-1){os.write(bytes,0,rea

java - 如何将 BufferedImage 对象转换为 InputStream 或 BLOB?

我正在尝试使用LONGBLOB属性将用户上传的图像存储到数据库中...我遇到了一个有两个方法的PreparedStatement问题设置一个blob是:publicvoidsetBinaryStream(intparameterIndex,InputStreamx)publicvoidsetBlob(intparameterIndex,Blobx)publicvoidsetBlob(intparameterIndex,InputStreaminputStream)现在的问题是我有一个BufferedImage对象,必须将其转换为Blob或InputStream才能上传...如何在不丢失

java - Spark : Read an inputStream instead of File

我在Java应用程序中使用SparkSQL对CSV文件进行一些处理,使用Databricks进行解析。我正在处理的数据来自不同的来源(远程URL、本地文件、谷歌云存储),我习惯于将所有内容都变成一个InputStream,这样我就可以在不知道数据来自哪里的情况下解析和处理数据来自。我在Spark上看到的所有文档都是从路径读取文件,例如SparkConfconf=newSparkConf().setAppName("spark-sandbox").setMaster("local");JavaSparkContextsc=newJavaSparkContext(conf);SQLCont

Java:如何从 inputStream 获取编码?

我想从流中获取编码。第一种方法-使用InputStreamReader。但它总是返回操作系统编码。InputStreamReaderreader=newInputStreamReader(newFileInputStream("aa.rar"));System.out.println(reader.getEncoding());output:GBK第二种方法-使用UniversalDetector。但它总是返回null。FileInputStreaminput=newFileInputStream("aa.rar");UniversalDetectordetector=newUnive

java - 让 InputStream 多次读取,不管 markSupported()

我需要能够多次重复使用java.io.InputStream,我想下面的代码可以工作,但它只在第一次工作。代码publicclassClazz{privatejava.io.InputStreamdbInputStream,firstDBInputStream;privateArrayTabledb;publicClazz(java.io.InputStreamdefDB){this.firstDBInputStream=defDB;this.dbInputStream=defDB;if(db==null)thrownewjava.io.FileNotFoundException("C

java - 在不关闭 InputStream 的情况下中断 BufferedReader#readLine()

我的Process的InputStream应该在用户想要或不想看到它时附加和分离。附加工作正常,但分离失败。中断readLine()方法的默认答案始终是关闭流,但在这种情况下我不能这样做,否则Process将完成或至少无法用于future的附件。这是流的读取方式:BufferedReaderreader=newBufferedReader(newInputStreamReader(getProcess().getInputStream()));Stringline;while((line=reader.readLine())!=null){System.out.println(line

java - 可靠地跳过 java.io.InputStream 及其子类型中的数据

我正在处理一个二进制流,需要高效地跳过我不感兴趣的数据范围,跳到一些将要处理的数据。InputStream.skip(long)在保证方面没有太大作用:Skipsoveranddiscardsnbytesofdatafromthisinputstream.Theskipmethodmay,foravarietyofreasons,endupskippingoversomesmallernumberofbytes,possibly0.Thismayresultfromanyofanumberofconditions;reachingendoffilebeforenbyteshavebee