public static void main(String[] args) throws IOException {
//這里用了多型,檔案輸入流檔案來源地址:D:\aaa.jpg
InputStream in = new FileInputStream("D:\\aaa.jpg");
//高效位元組輸入流,底層是位元組陣列實作的,這里需要放入一個輸入流物件
BufferedInputStream bis = new BufferedInputStream(in);
//這里用了多型,檔案輸出流寫出到的目的地:D:\java0817\bbb.jpg在復制的程序中改名
OutputStream out = new FileOutputStream("D:\\java0817\\bbb.jpg");
//高效位元組輸出流,底層是位元組陣列,這里也需要放入一個輸出流物件
BufferedOutputStream bos = new BufferedOutputStream(out);
//這里用一堆一堆寫,所以要定義一個位元組陣列
byte [] bytes = new byte[1024];
int len = -1;
//回圈讀取檔案內容到位元組陣列,同時當位元組陣列滿或者讀完檔案內容時,輸出到目標地址
while ((len = bis.read(bytes))!=-1){
out.write(bytes);
}
in.close();
bis.close();
//因為有緩沖區,所以這里要重繪后再關閉資源
bos.flush();
out.close();
bos.close();
System.out.println("復制成功");
}
uj5u.com熱心網友回復:
你用的jdk是7以下嗎uj5u.com熱心網友回復:
即使是jdk7以下這樣寫法也不可取,jdk7+可以使用TWR
try{
try (InputStream in = new FileInputStream("D:\\aaa.jpg");
BufferedInputStream bis = new BufferedInputStream(in);
OutputStream out = new FileOutputStream("D:\\java0817\\bbb.jpg");
BufferedOutputStream bos = new BufferedOutputStream(out);) {
// 這里用一堆一堆寫,所以要定義一個位元組陣列
byte[] bytes = new byte[1024];
// 回圈讀取檔案內容到位元組陣列,同時當位元組陣列滿或者讀完檔案內容時,輸出到目標地址
while ((bis.read(bytes)) != -1) {
out.write(bytes);
}
}
}catch(IOException e){
e.printStackTrace();
}
jdk7以下可以使用try{}finally{//在里關閉IO流}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/8255.html
標籤:Java SE
上一篇:java
