簡體   English   中英

在Java中使用InputStream和OutputStream傳輸時未顯示圖像

[英]image not showing when transferred using InputStream and OutputStream in java

這是我的測試程序。 我需要將其應用到某個地方。這可能很小,對此感到抱歉。 但是我還是一個入門者。 所以請幫助我。

try{
        File file1 = new File("c:\\Users\\prasad\\Desktop\\bugatti.jpg");
        File file2 = new File("c:\\Users\\prasad\\Desktop\\hello.jpg");
        file2.createNewFile();
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file1)));
        String data = null;
        StringBuilder imageBuild = new StringBuilder();
        while((data = reader.readLine())!=null){
            imageBuild.append(data);
        }
        reader.close();
        BufferedWriter writer = new BufferedWriter(new PrintWriter(new FileOutputStream(file2)));
        writer.write(imageBuild.toString());
        writer.close();
    }catch(IOException e){
        e.printStackTrace();
    }

這是文件1 在此處輸入圖片說明

這是file2 在此處輸入圖片說明

您可以執行以下兩個操作之一:

private static void copyFile(File source, File dest) throws IOException {
Files.copy(source.toPath(), dest.toPath());
}

如果想使用流,也可以這樣:

private static void copyFile(File source, File dest)
throws IOException {
InputStream input = null;
OutputStream output = null;
try {
    input = new FileInputStream(source);
    output = new FileOutputStream(dest);
    byte[] buf = new byte[1024];
    int bytesRead;
    while ((bytesRead = input.read(buf)) > 0) {
        output.write(buf, 0, bytesRead);
    }
} finally {
    input.close();
    output.close();
}
}

圖像不包含線條甚至字符。 因此,您不應該使用readLine()甚至ReadersWriters. 您應該直接使用輸入和輸出流重寫復制循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM