-1

InputStreamReaderに変換するにはどうすればよいInputStreamですか? 文字列とバイトデータを含むがあり、InputStreamそれを解析したいと考えています。だから私はInputStreamtoをラップしBufferedReaderます。それから私はそれから3行を読みました。その後、残りのデータ(バイト)をそのまま取得したい。しかし、取得しようとしても何も起こりません。コードスニペット:

BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8"));

                String endOfData = br.readLine();
                String contentDisposition = br.readLine();
                String contentType = br.readLine();    

                file = new File(filename);
                if(file.exists()) file.delete();
                file.createNewFile();
                FileOutputStream fos = new FileOutputStream(file);                  

                byte[] data = new byte[8192];     
                int len = 0;     

                while (-1 != (len = is.read(data)) )     
                {                
                    fos.write(data, 0, len);  
                    Log.e("len", len+"");
                }      
 fos.flush();
 fos.close();
 is.close();

ファイルが空です。ラップしなくても問題なくInputStream動作しますが、3 行を読み取って削除する必要があります。ありがとう。

4

3 に答える 3

0

テキストとバイトデータを混ぜ合わせたい場合は、OutputStream.writeUTF を使用してこれらの 3 行を書き出す必要があります。これにより、1 つの InputStream で必要なすべてのデータを取得できます。

于 2012-04-12T01:45:57.893 に答える
-2

特にバッファリングされたリーダー/ストリームをミックスに投入し始めると、バイト入力と文字入力を正しく混合するのはかなり困難です。1つを選んでそれを使い続けるか(必要に応じてバイトを文字列に変換します。エンコーディングに注意してください!)、全体をZipOutputStreamでラップして、異なる内容の複数の論理「ファイル」を持つことができるようにすることをお勧めします。

于 2012-04-12T01:57:45.087 に答える