1
public class Socket {
    public Socket() {
        try {
            URL url = new URL("http://images2.layoutsparks.com/1/56178/castle-stone-window-grey.jpg");
            InputStream in = url.openStream();
            BufferedInputStream bin = new BufferedInputStream(in); 


            ByteArrayOutputStream bout = new ByteArrayOutputStream(4096);
            byte[] okunan = new byte[4096];

            while(in.read()!= -1){
                bout.write(okunan, 0, in.read());

            }

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

次のエラーが発生しました: Exception in thread "main" java.lang.IndexOutOfBoundsException at java.io.ByteArrayOutputStream.write(Unknown Source)

この jpeg ファイルを bytearrayoutputstream に読み込んでから、ファイルに書き込みたいと思います。

私の悪い英語でごめんなさい..

4

4 に答える 4

2

これを試して

BufferedImage img = ImageIO.read(new URL("http://images2.layoutsparks.com/1/56178/castle-stone-window-grey.jpg"));
于 2013-03-12T10:31:18.277 に答える
0

ImageIOAPIを使用する

BufferedImage img = ImageIO.read(new URL("http://images2.layoutsparks.com/1/56178/castle-stone-window-grey.jpg"));

ByteArrayOutputStream bout = new ByteArrayOutputStream();
ImageIO.write(img, "jpg", bout);

これこれをチェックして情報を入手してください

于 2013-03-12T10:33:38.297 に答える
0

java.ioパッケージの単純なInputStreamではなく、javax.imageio.ImageIOを使用します。

ここを見てください、私はそれが役立つと思います:

http://docs.oracle.com/javase/6/docs/api/javax/imageio/ImageIO.html

于 2013-03-12T12:54:43.080 に答える
0

みたいな意味ですか?

try {
        URL url = new URL("http://images2.layoutsparks.com/1/56178/castle-stone-window-grey.jpg");
        InputStream in = url.openStream();
        BufferedInputStream bin = new BufferedInputStream(in); 


        ByteArrayOutputStream bout = new ByteArrayOutputStream(4096);
        byte[] okunan = new byte[4096];

        while(in.read()!= -1){
            in.read(okunan);
            bout.write(okunan);

        }

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
于 2013-03-12T10:35:49.743 に答える