Questions tagged «inputstream»

用Java读取数据流的抽象机制

7
Byte []到InputStream或OutputStream
我的数据库表中有一个blob列,必须byte[]在Java程序中将其用作映射,并使用此数据将其转换为InputStream或OutputStream。但是我不知道这样做的时候内部会发生什么。有人能简要解释一下我进行此转换时发生了什么吗?

10
两次读取流
您如何两次读取同一输入流?是否可以某种方式复制它? 我需要从网络获取图像,将其保存在本地,然后返回保存的图像。我只是想,使用相同的流而不是为下载的内容启动新的流然后再次读取它会更快。
127 java  inputstream 

6
URL的InputStream
如何从URL获取InputStream? 例如,我想在url上获取文件,wwww.somewebsite.com/a.txt并通过servlet将其作为Java中的InputStream读取。 我试过了 InputStream is = new FileInputStream("wwww.somewebsite.com/a.txt"); 但是我得到的是一个错误: java.io.FileNotFoundException
117 java  url  inputstream 

6
如何在Android中阅读文本文件?
我想从文本文件中读取文本。在下面的代码中,发生异常(这意味着它进入了该catch块)。我将文本文件放在应用程序文件夹中。我应该在哪里放置此文本文件(mani.txt)以便正确阅读? try { InputStream instream = openFileInput("E:\\test\\src\\com\\test\\mani.txt"); if (instream != null) { InputStreamReader inputreader = new InputStreamReader(instream); BufferedReader buffreader = new BufferedReader(inputreader); String line,line1 = ""; try { while ((line = buffreader.readLine()) != null) line1+=line; }catch (Exception e) { e.printStackTrace(); } } } catch (Exception e) { String error=""; error=e.getMessage(); …

3
在Scala中将InputStream转换为字符串的惯用方式
我有一个方便的函数,已在Java中使用过,用于将InputStream转换为String。这是Scala的直接翻译: def inputStreamToString(is: InputStream) = { val rd: BufferedReader = new BufferedReader(new InputStreamReader(is, "UTF-8")) val builder = new StringBuilder() try { var line = rd.readLine while (line != null) { builder.append(line + "\n") line = rd.readLine } } finally { rd.close } builder.toString } 在Scala中有惯用的方法吗?

7
从HttpURLConnection获取InputStream对象时发生FileNotFoundException
我正在尝试使用HttpURLConnection(在Java中使用cUrl)将发布请求发送到url。请求的内容为xml,最后,应用程序处理xml并将记录存储到数据库,然后以xml字符串的形式发送回响应。该应用程序本地托管在apache-tomcat上。 当我从终端执行此代码时,将按预期将一行添加到数据库。但是,从连接获取InputStream时会引发如下异常 java.io.FileNotFoundException: http://localhost:8080/myapp/service/generate at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1401) at org.kodeplay.helloworld.HttpCurl.main(HttpCurl.java:30) 这是代码 public class HttpCurl { public static void main(String [] args) { HttpURLConnection con; try { con = (HttpURLConnection) new URL("http://localhost:8080/myapp/service/generate").openConnection(); con.setRequestMethod("POST"); con.setDoOutput(true); con.setDoInput(true); File xmlFile = new File("test.xml"); String xml = ReadWriteTextFile.getContents(xmlFile); con.getOutputStream().write(xml.getBytes("UTF-8")); InputStream response = con.getInputStream(); BufferedReader reader = new …

9
相当于IOUtils.toString(InputStream)的番石榴
Apache Commons IO有一个很好的便捷方法IOUtils.toString()来读取InputStream字符串。 由于我正尝试从Apache Commons转移到Guava:Guava中有等同的功能吗?我查看了com.google.common.io程序包中的所有类,但几乎找不到任何简单的东西。 编辑:我理解并赞赏字符集的问题。碰巧,我知道我所有的来源都是ASCII(是,ASCII,不是ANSI等),因此在这种情况下,编码对我来说不是问题。
106 java  io  inputstream  guava 

2
在Kotlin中,如何将InputStream的全部内容读取为String?
我最近看到了用于读取 InputStream在Kotlin中入String的,例如: // input is of type InputStream val baos = ByteArrayOutputStream() input.use { it.copyTo(baos) } val inputAsString = baos.toString() 并且: val reader = BufferedReader(InputStreamReader(input)) try { val results = StringBuilder() while (true) { val line = reader.readLine() if (line == null) break results.append(line) } val inputAsString = results.toString() } …

3
将InputStream读取为UTF-8
我正在尝试text/plain逐行从Internet 上读取文件。我现在拥有的代码是: URL url = new URL("http://kuehldesign.net/test.txt"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); LinkedList<String> lines = new LinkedList(); String readLine; while ((readLine = in.readLine()) != null) { lines.add(readLine); } for (String line : lines) { out.println("> " + line); } 我正在使用文件test.txt包含¡Hélló!,以测试编码。 当我查看OutputStream(out)时,看到的是> ¬°H√©ll√≥!。我不相信这是有问题的,OutputStream因为我可以做到out.println("é");没有问题。 对于InputStream作为UTF-8的阅读形式有什么想法吗?谢谢!

8
如何从java.lang.String获取java.io.InputStream?
我有一个String我想用作InputStream。在Java 1.0中,您可以使用java.io.StringBufferInputStream,但这已经@Deprecrated(有充分的理由-您无法指定字符集编码): 此类无法正确将字符转换为字节。从JDK 1.1开始,从字符串创建流的首选方法是通过StringReader 类。 您可以创建一个java.io.Reader有java.io.StringReader,但没有适配器采取Reader和创造InputStream。 我发现一个古老的虫子正在寻找合适的替代品,但据我所知,这种虫子不存在。 通常建议的解决方法是java.lang.String.getBytes()用作java.io.ByteArrayInputStream: public InputStream createInputStream(String s, String charset) throws java.io.UnsupportedEncodingException { return new ByteArrayInputStream(s.getBytes(charset)); } 但这意味着将String内存中的整个实例化为字节数组,并破坏了流的目的。在大多数情况下,这没什么大不了的,但是我一直在寻找可以保留流意图的东西-尽可能少的数据在内存中重新实现。


5
从OutputStream创建InputStream的最有效方法
此页面:http : //blog.ostermiller.org/convert-java-outputstream-inputstream 描述如何从OutputStream创建InputStream: new ByteArrayInputStream(out.toByteArray()) 其他选择是使用PipedStreams和新线程,这很麻烦。 我不喜欢将许多兆字节复制到新的内存字节数组中的想法。是否有一个图书馆可以更有效地做到这一点? 编辑: 根据劳伦斯·贡萨尔维斯(Laurence Gonsalves)的建议,我尝试了PipedStreams,结果发现它们并不难处理。这是clojure中的示例代码: (defn #^PipedInputStream create-pdf-stream [pdf-info] (let [in-stream (new PipedInputStream) out-stream (PipedOutputStream. in-stream)] (.start (Thread. #(;Here you write into out-stream))) in-stream))

8
具有InputStream长度示例的AmazonS3 putObject
我正在使用Java将文件上传到S3-到目前为止,这是我得到的: AmazonS3 s3 = new AmazonS3Client(new BasicAWSCredentials("XX","YY")); List<Bucket> buckets = s3.listBuckets(); s3.putObject(new PutObjectRequest(buckets.get(0).getName(), fileName, stream, new ObjectMetadata())); 文件正在上传,但是未设置内容长度时会发出警告: com.amazonaws.services.s3.AmazonS3Client putObject: No content length specified for stream > data. Stream contents will be buffered in memory and could result in out of memory errors. 这是我上传文件和stream变量是InputStream,从中我可以得到字节数组是这样的:IOUtils.toByteArray(stream)。 因此,当我尝试像这样设置内容长度和MD5(从此处获取)时: // get MD5 base64 hash …

2
如何将InputStream转换为虚拟文件
我有一个方法,期望输入变量之一是java.io.File类型,但是我得到的只是InputStream。另外,我无法更改方法的签名。 如何将InputStream转换为File类型,而无需实际将文件写入文件系统?
81 java  file  inputstream 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.