IO 图片复制

    xiaoxiao2024-12-26  67

    流分为字节流和字符流。字节流是按照字节读取数据。字符流按照字符读取数据,因为文件的编码不同,从而有了对字符进行高效操作的字符流对象。字符流底层还是基于字节流操作,自动搜寻了指定的码表。

    IO的复制操作:先把文件读取到程序,然后再把程序输出到文件。

    package IO; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; /** * IO 图片的拷贝 * * @author zhaoy * */ public class TestCopy1 { /** * 图片读取到字节数组 * * @param path * @return */ public static byte[] fileToByetArray(String path) { // 创建源 File src = new File(path); // 选择流 InputStream is = null; ByteArrayOutputStream os = null; try { is = new FileInputStream(src); os = new ByteArrayOutputStream(); // 操作 byte[] flush = new byte[1024]; int len = -1; while ((len = is.read(flush)) != -1) { os.write(flush, 0, len); } os.flush(); return os.toByteArray(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { // 关闭流 if (os != null) { try { os.close(); } catch (IOException e) { e.printStackTrace(); } } if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } return null; } public static void byteArrayToFile(byte[] datas, String path) { // 创建源 File dest = new File(path); // 选择流 InputStream is = null; OutputStream os = null; try { is = new ByteArrayInputStream(datas); os = new FileOutputStream(dest); // 操作 byte[] flush = new byte[10]; int len = -1; while ((len = is.read(flush)) != -1) { os.write(flush, 0, len); } os.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { // 关闭源 if (os != null) { try { os.close(); } catch (IOException e) { e.printStackTrace(); } } if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } } public static void main(String[] args) { byte[] datas = fileToByetArray("src/Img.png"); byteArrayToFile(datas, "src/p-Img.png"); } }

     

    最新回复(0)