草庐IT

inputstreams

全部标签

java - DocumentBuilder.parse 是否关闭 InputStream

对于类似下面的代码:InputStreamis=newFileInputstream("test.xml");Documentdoc=DocumentBuilder.parser(is);我的问题是我是否需要手动关闭流(调用is.close())。DocumentBuilder会为我关闭InputStream吗? 最佳答案 使用下面的测试代码来查看输入流是否关闭,可以看到是哪一行代码关闭了流。publicclassDocumentBuilderTest{publicstaticvoidmain(String[]args){try{I

Java:访问字符串列表作为 InputStream

有什么方法可以InputStream包装UTF-8String列表吗?我想做类似的事情:InputStreamin=newXyzInputStream(Listlines) 最佳答案 您可以从ByteArrayOutputStream中读取,您可以使用ByteArrayInputStream创建源byte[]数组。所以创建数组如下:Listsource=newArrayList();source.add("one");source.add("two");source.add("three");ByteArrayOutputStrea

java - 如何在 Java ME 中将 StringBuffer 转换为 InputStream?

我是Java新手,正在学习JavaME开发。我陷入了这种转变。请帮助我将StringBuffer转换为InputStream。谢谢! 最佳答案 查看类(class)ByteArrayInputStream.例如:publicstaticInputStreamfromStringBuffer(StringBufferbuf){returnnewByteArrayInputStream(buf.toString().getBytes());}请注意,您可能希望在getBytes()方法上使用显式字符编码,例如:returnnewByte

java - 复制 InputStream,如果大小超过限制则中止操作

我尝试将InputStream复制到文件,如果InputStream的大小大于1MB,则中止复制。在Java7中,我写了如下代码:publicvoidcopy(InputStreaminput,Pathtarget){OutputStreamout=Files.newOutputStream(target,StandardOpenOption.CREATE_NEW,StandardOpenOption.WRITE);booleanisExceed=false;try{longnread=0L;byte[]buf=newbyte[BUFFER_SIZE];intn;while((n=in

java - 如何使用NIO将InputStream写入文件?

我正在使用以下方式将InputStream写入File:privatevoidwriteToFile(InputStreamstream)throwsIOException{StringfilePath="C:\\Test.jpg";FileChanneloutChannel=newFileOutputStream(filePath).getChannel();ReadableByteChannelinChannel=Channels.newChannel(stream);ByteBufferbuffer=ByteBuffer.allocate(1024);while(true){if

java - 如何将 Java 8 Streams 与 InputStream 一起使用?

我想将java.util.streams.Stream包裹在InputStream中,以便一次处理一个字节或一个字符。我没有找到任何简单的方法来做到这一点。考虑以下练习:我们希望计算每个字母在文本文件中出现的次数。我们可以将其存储在一个数组中,这样tally[0]将存储a在文件中出现的次数,tally[1]将存储b出现的次数等等。由于找不到直接流式传输文件的方法,我这样做了:int[]tally=newint[26];Streamlines=Files.lines(Path.get(aFile)).map(s->s.toLowerCase());ConsumercharCount=ne

java - 创建 FileInputStream 对象时使用 InputStream 而不是 FileInputStream 有什么区别

这可能有点傻,但我想知道后台操作的区别。InputStreamis=newFileInputStream(filepath);FileInputStreamis=newFileInputStream(filepath);上面两行代码有什么区别,用在什么场景下。 最佳答案 FileInputStream扩展InputStream:它是InputStream的专门版本,专为读取文件而设计。根据用途,InputStream有多种实现方式。使用代码中所需的最高类型通常是一种很好的做法。因此,如果您的代码需要从InputStream而不是专门

Java InputStream 到 ByteBuffer

我正在读取dds纹理,但是自从构建了jar之后,我就无法通过url和file访问这些纹理,并且必须使用InputStream代替。所以我需要知道如何从java.io.InputStream中获取java.nio.ByteBuffer。Ps:无论通过第3部分库,我只需要它工作 最佳答案 对我来说,这种情况下最好的是Apachecommons-io来处理这个和类似的任务。IOUtils类型有一个静态方法来读取InputStream并返回一个byte[]。InputStreamis;byte[]bytes=IOUtils.toByteAr

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

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

java - 如何在 Java 中将 InputStream 转换为 String?

假设我有一个包含文本数据的InputStream,我想将其转换为String(例如,这样我就可以将流的内容写入日志文件)。获取InputStream并将其转换为String的最简单方法是什么?publicStringconvertStreamToString(InputStreamis){//???} 最佳答案 如果你想简单可靠地做到这一点,我建议使用ApacheJakartaCommonsIO库IOUtils.toString(java.io.InputStream,java.lang.String)方法。