草庐IT

internet-inputStream

全部标签

java - 将 InputStream 的 Latin-1 内容转换为 UTF-8 字符串

我需要将InputStream的内容转换为字符串。这里的难点在于输入编码,即Latin-1。我使用String、getBytes、char[]等尝试了几种方法和代码片段,以便直接进行编码,但似乎没有任何效果。最后,我想出了下面的工作解决方案。然而,这段代码对我来说似乎有点冗长,即使对于Java也是如此。所以这里的问题是:是否有更简单、更优雅的方法来实现这里所做的事情?privateStringconvertStreamToStringLatin1(java.io.InputStreamis)throwsIOException{Stringtext="";//setupreaderswi

java - 如何将 javax.xml.transform.Source 转换为 InputStream?

如何将javax.xml.transform.Source转换为InputStream?Source的实现是javax.xml.transform.dom.DOMSource。SourceinputSource=messageContext.getRequest().getPayloadSource(); 最佳答案 首先尝试向下转换为javax.xml.transform.stream.StreamSource。如果成功,您就可以通过getter访问底层的InputStream或Reader。这是最简单的方法。如果向下转型失败,您可

java - 如何从 HttpsURLConnection 创建 Java 非阻塞 InputStream?

基本上,我有一个URL,可以在发布新消息时从聊天室流式传输xml更新。我想将该URL转换为InputStream并继续从中读取,只要保持连接并且只要我没有发送Thread.interrupt()。我遇到的问题是,当有内容要从流中读取时,BufferedReader.ready()似乎没有变为真。我正在使用以下代码:BufferedReaderbuf=newBufferedReader(newInputStreamReader(ins));Stringstr="";while(Thread.interrupted()!=true){connected=true;debug("Listen

java - 在 Java 中测试空 InputStream

你们如何测试一个空的InputStream?我知道InputStream设计用于处理远程资源,因此在实际读取它之前,您无法知道它是否存在。我不能使用read(),因为当前位置会改变,使用mark()并为此重置似乎是不合适的。问题是,有时无法测试read()是否返回-1,因为如果您有一个流并且某些第三方库使用它,您需要在将它发送到那里之前测试它是否为空。我所说的空InputStreams是指这些newByteArrayInputStream(newbyte[0]) 最佳答案 您可以将InputStream包装在PushbackInpu

尽管添加了Internet许可,但我在我的logcat中使用“未指定网络安全配置,使用平台默认值”

我已经在我的清单中添加了互联网权限代码,但我仍然得到NoNetworkSecurityConfigspecified,usingplatformdefault在我的logcat中。通过我的代码,我正在尝试从URL获取HTML代码时按下按钮,但不幸的是,我的应用程序正在崩溃。在这里,我粘贴了我的清单代码:我的Java课在这里-publicclassUrlFetcherextendsAppCompatActivityimplementsView.OnClickListener{EditTexturl;Buttonfetch;protectedvoidonCreate(BundlesavedInst

java - Jersey InputStream 在过滤器中被修改。无法弄清楚如何访问 Jersey Resource 中修改后的 inputStream

如HowtouseJerseyinterceptorstogetrequestbody中所述,我正在修改ContainerRequestFilter中的EntityInputStream。publicfilter(ContainerRequestrequest){ByteArrayOutputStreamout=newByteArrayOutputStream();InputStreamin=request.getEntityInputStream();try{Readerwriter.writeTo(in,out);byte[]requestEntity=out.toByteArra

java - 缓冲后台 InputStream 实现

我已经编写了后台InputStream(和OutputStream)实现来包装其他流,并在后台线程上提前读取,主要允许解压缩/压缩发生在不同线程处理解压流。这是一个相当标准的生产者/消费者模型。这似乎是一种通过读取、处理和写入数据的简单进程充分利用多核CPU的简单方法,从而可以更有效地利用CPU和磁盘资源。也许“高效”不是最好的词,但与直接从ZipInputStream读取并直接写入ZipOutputStream相比,它提供了更高的利用率,而且我更感兴趣的是减少了运行时间。我很高兴发布代码,但我的问题是我是否正在重新发明现有(和更频繁使用的)库中现成的东西?编辑-发布代码...我的Ba

java.lang.IllegalArgumentException : Your InputStream was neither an OLE2 stream, 也不是 OOXML 流

当我读取Excel文件(.xls格式)时,我不断收到异常:java.lang.IllegalArgumentException:YourInputStreamwasneitheranOLE2stream,noranOOXMLstream.我搜索了一下,发现如果输入流不支持重置或标记,我应该用pushbackStream包装它。我的输入流不支持标记\重置。那么使用pushbackStream是唯一的选择吗?如何使用它?它有什么用?谢谢 最佳答案 YourInputStreamwasneitheranOLE2stream,noranOO

java - 为什么在 java.io.InputStream 中只有 mark() 和 reset() 方法同步?

不明白为什么mark()和reset()是同步的,为什么read()不是? 最佳答案 java.io.InputStream是一个抽象类。它有一个默认的标记/重置实现,只在重置时抛出异常,告诉它不受支持,因此不支持它的子类不需要编写自己的方法来抛出异常。"synchronized"在默认情况下没有用,抛出异常。任何支持它的子类都必须重写这些方法,并且同步不会被继承,因此被重写的方法可能同步也可能不同步。我认为没有任何影响。我想这是一个没有后果的设计缺陷,或者它可能是一个警告,所以程序员将它子类化以同步这些方法,因为它应该那样做。

java - 读取 JAX-RS body InputStream 两次

我有一个JAX-RS日志过滤器来记录请求和响应的详细信息,如下所示:publicclassLoggingFilterimplementsContainerRequestFilter,ContainerResponseFilter{@Overridepublicvoidfilter(finalContainerRequestContextrequestContext)throwsIOException{...Stringbody=getBody(request);...if(LOGGER.isDebugEnabled()){LOGGER.debug("request:{}",httpRe