タグ付けされた質問 「inputstream」

Javaでデータストリームを読み取るための抽象的なメカニズム

7
Byte []からInputStreamまたはOutputStream
データベーステーブルにblob列があります。これをbyte[]Javaプログラムでマッピングとして使用し、このデータを使用するには、InputStreamまたはに変換する必要がありOutputStreamます。しかし、私がそうするとき、私は内部で何が起こるかわかりません。この変換を行うと何が起こっているのか、誰かが簡単に説明できますか?

10
ストリームを2回読み取る
どのようにして同じ入力ストリームを2回読み取りますか?どういうわけかそれをコピーすることは可能ですか? Webから画像を取得し、ローカルに保存してから、保存した画像を返す必要があります。私は、ダウンロードしたコンテンツに新しいストリームを開始してからもう一度読み取るのではなく、同じストリームを使用する方が速くなると考えました。
127 java  inputstream 

6
URLからのInputStream
URLからInputStreamを取得するにはどうすればよいですか? たとえば、wwww.somewebsite.com/a.txtサーブレットを介して、URLのファイルを取得し、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を文字列に変換する慣用的な方法
InputStreamをStringに変換するためにJavaで使用した便利な関数があります。以下は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
(JavaでcUrlを使用するために)HttpURLConnectionを使用して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)に相当するGuava
Apache Commons IOには便利なメソッドがありますInputStream、文字列を読み取るための IOUtils.toString()があります。 私はアパッチコモンズからグアバに移動しようとしているので、グアバに同等のものはありますか?com.google.common.ioパッケージ内のすべてのクラスを調べましたが、これほど単純なものは見つかりませんでした。 編集:私は文字セットの問題を理解し、感謝しています。すべてのソースがASCII(はい、ASCII、ANSIではないなど)であることを知っているので、この場合、エンコーディングは問題になりません。
106 java  io  inputstream  guava 

2
Kotlinで、InputStreamのコンテンツ全体を文字列に読み込むにはどうすればよいですか?
私は最近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() } finally …

3
InputStreamをUTF-8として読み取る
text/plainインターネット経由でファイルを1行ずつ読み込もうとしています。私が今持っているコードは: 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の長さの例を使用したAmazonS3putObject
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を仮想ファイルに変換する方法
入力変数の1つがjava.io.Fileタイプであることを期待するメソッドがありますが、取得するのはInputStreamのみです。また、メソッドのシグネチャを変更することはできません。 実際にファイルをファイルシステムに書き込まずに、InputStreamをファイルタイプに変換するにはどうすればよいですか?
82 java  file  inputstream 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.