FileOutputStream的使用_檔案複製操作
阿新 • • 發佈:2018-12-18
FileOutputStream
@Test
public void test4() {
//1. 建立一個File物件,表明要寫入的檔案位置
//輸出的物理檔案可以不存在,當執行過程中,不存在會自動建立
File file = new File("hello3.txt");
//2. 建立一個FileOutputStream的物件,將file的物件作為形參傳遞給FileOutputStream的構造器中
FileOutputStream fos = null;
try {
fos = new FileOutputStream (file);
//3. 寫入操作
fos.write(new String("I love China").getBytes());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//4. 關閉輸出流
if (fos != null){
try {
fos. close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
從磁碟中複製檔案
//從磁碟中讀取一個檔案,並寫入到另一個位置(相當於檔案的複製)
@Test
public void test5(){
//1. 提供讀入,寫出的檔案
File file1 = new File("hello1.txt");
File file2 = new File("hello3.txt");
//2. 提供相應的流
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(file1);
fos = new FileOutputStream(file2);
//3. 實現檔案的複製
byte[] b = new byte[5];
int len;
while ((len = fis.read(b))!= -1){
fos.write(b,0,len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (fos != null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fis != null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
將檔案中的地址轉換為引數,可以實現檔案的基本拷貝的方法
File file1 = new File("hello1.txt");
File file2 = new File("hello3.txt");
具體每次讀取大小根據檔案大小決定: byte[] b = new byte[5];