test.copy("G:\\G盤寄存資料\\我的文檔1\\音樂課堂.doc","G:\\G盤寄存資料");
在日喀則等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供成都做網站、成都網站建設 網站設計制作按需求定制開發,公司網站建設,企業網站建設,成都品牌網站建設,網絡營銷推廣,外貿營銷網站建設,日喀則網站建設費用合理。
請注意上面的有個文件夾名字叫“G盤寄存資料”,你復制的文件后的新文件名也叫“G盤寄存資料”,這樣名字重復了,所以就出錯了。
可以把程序改成這樣的話就行了:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
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;
public class FileCopy {
public void copy(String src, String dest){//**********
InputStream is=null;
OutputStream os=null;
char ch[]=src.toCharArray();
//************新添加的代碼**********
int pos=0;
for(int i=ch.length-1;i=0;i--)
{
if(ch[i]=='\\')
{
if(ipos)
pos=i;
}
}
String temp=src.substring(pos);
dest=dest+temp;
System.out.println("dest="+dest);
//****************************************
try {
is=new BufferedInputStream(new FileInputStream(src));
os=new BufferedOutputStream(new FileOutputStream(dest));
byte[] b=new byte[256];
int len=0;
String str=null;
StringBuilder sb=new StringBuilder();
try {
while((len=is.read(b))!=-1){
os.write(b,0,len);
}
os.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(is!=null){
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally{
if(os!=null){
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
FileCopy test=new FileCopy();
test.copy("G:\\G盤寄存資料\\我的文檔1\\hello.txt","G:\\G盤寄存資料");//++++++++++++++++++++++
}
}
主要是用到java里面的i/o流。代碼例子如下:
import?java.io.BufferedReader;
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.FileOutputStream;
import?java.io.FileWriter;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.InputStreamReader;
/**
*?java讀寫文件,復制文件
*?讀取d:/1.txt文件內容,寫入f:/text.txt文件中.
*?@author?young
*
*/
public?class?FileWriterTest?{
//?讀寫文件
public?static?void?rwFile(){
FileWriter?fw?=?null;
BufferedReader?br?=?null;
try?{
fw?=?new?FileWriter("f:\\text.txt",?true);
br?=?new?BufferedReader(new?InputStreamReader(
new?FileInputStream("d:\\1.txt"),?"UTF-8"));
String?line?=?null;
while?((line?=?br.readLine())?!=?null)?{
System.out.println("文件內容:?"?+?line);
fw.write(line);
fw.flush();
}
br.close();
}?catch?(FileNotFoundException?e)?{
e.printStackTrace();
}?catch?(IOException?e)?{
e.printStackTrace();
}?finally?{
if?(fw?!=?null)?{
try?{
fw.close();
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
}
}
public?static?void?main(String[]?args)?{
rwFile();
}
}
首先在D盤新建文件1.txt,輸入任意內容。然后執行java代碼即可。
工具/原料
一臺配置了java環境的電腦
一款適合自己的開發集成環境,這里用的是eclipse Kepler
文件拷貝DEMO
1.首先,理清思路,然后我們再動手操作。
拷貝,有源文件,和目的文件。
如果原文件不存在,提示,報錯。
如果目的文件不存在,創建空文件并被覆蓋。
如果目的地址,也即目的路徑不存在,創建路徑。
拷貝,輸入流,輸出流,關閉流。
拷貝前輸出文件大小,計算拷貝大小,比較并核實。輸出。
2.首先呢,先判斷傳參是否完整。
如果不夠兩個參數,或者多于兩個參數,提示錯誤。
如果目標文件不存在,創建 空文件繼續復制。
3.在開始前,輸出被拷貝的源文件的大小。
4.獲得文件名稱,即短名。也即路徑下的文件全名(包括文件擴展名)。
5.拷貝的關鍵,這里用的簡單的緩沖流。從源文件到目的文件。
number of bytes copied 即是對拷貝長度的累計,直到拷貝完成,輸出。
6.將步驟二中的判斷并拷貝文件的代碼寫在一個main函數中,
執行拷貝,拷貝完成。結果拷貝大小和源文件大小一致,成功。
7.在執行前,記得輸入參數。
如果是使用命令提示符,執行 javac CopyFile.java 之后,
執行 java CopyFile [源文件長名] [目的文件長名]
如果是使用的eclipse,在運行前設置一下運行參數,完成后點擊運行,如下圖。
P.S. 這里面的所謂“長名”是指完整絕對路徑+文件名+文件類型擴展名
這里的源文件及目的文件的名稱分別為:
E:/IP_Data.rar 和 D:/testFiles/IP_Data.rar
END
復制粘貼實際上是文件的流讀取和寫入可以通過如下方法實現:
讀寫是兩個不同的分支,通常都是分開單獨使用的。
可以通過BufferedReader 流的形式進行流緩存,之后通過readLine方法獲取到緩存的內容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此時獲取到的bre就是整個文件的緩存流
while ((str = bre.readLine())!= null) // 判斷最后一行不存在,為空結束循環
{
System.out.println(str);//原樣輸出讀到的內容
};
備注: 流用完之后必須close掉,如上面的就應該是:bre.close(),否則bre流會一直存在,直到程序運行結束。
可以通過“FileOutputStream”創建文件實例,之后過“OutputStreamWriter”流的形式進行存儲,舉例:
OutputStreamWriter pw = null;//定義一個流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//確認流的輸出文件和編碼格式,此過程創建了“test.txt”實例
pw.write("我是要寫入到記事本文件的內容");//將要寫入文件的內容,可以多次write
pw.close();//關閉流
備注:文件流用完之后必須及時通過close方法關閉,否則會一直處于打開狀態,直至程序停止,增加系統負擔。
import java.io.File;\x0d\x0aimport java.io.FileInputStream;\x0d\x0aimport java.io.FileNotFoundException;\x0d\x0aimport java.io.FileOutputStream;\x0d\x0aimport java.io.IOException;\x0d\x0apublic class Copy {\x0d\x0a/**\x0d\x0a* @param args\x0d\x0a*/\x0d\x0apublic static void main(String[] args) {\x0d\x0a// TODO Auto-generated method stub\x0d\x0aif(args.length!=2){\x0d\x0aSystem.out.print("沒有輸入正確數目的參數,程序退出!");\x0d\x0aSystem.exit(0);\x0d\x0a}\x0d\x0aFile fileS = new File("./"+args[0]);\x0d\x0aFile fileD = new File("./"+args[1]);\x0d\x0aif(fileD.exists())System.out.println("目標文件 "+args[1]+" 已存在!");\x0d\x0abyte[] temp = new byte[50];\x0d\x0aint totalSize = 0;\x0d\x0atry {\x0d\x0aFileInputStream fr = new FileInputStream(fileS);\x0d\x0aFileOutputStream fo = new FileOutputStream(fileD);\x0d\x0aint length = 0;\x0d\x0awhile((length = fr.read(temp, 0, temp.length)) != -1){\x0d\x0atotalSize += length;\x0d\x0afo.write(temp, 0, length);\x0d\x0a}\x0d\x0aSystem.out.println("文件 "+args[0]+" 有 "+totalSize+" 個字節");\x0d\x0aSystem.out.println("復制完成!");\x0d\x0a} catch (FileNotFoundException e) {\x0d\x0a// TODO Auto-generated catch block\x0d\x0ae.printStackTrace();\x0d\x0aSystem.out.println("源文件 "+args[0]+" 不存在!");\x0d\x0a} catch (IOException e) {\x0d\x0a// TODO Auto-generated catch block\x0d\x0ae.printStackTrace();\x0d\x0a}\x0d\x0a}\x0d\x0a}
當前標題:java復制文件代碼實例,java實現復制文件
網站路徑:http://m.kartarina.com/article18/dseshgp.html
成都網站建設公司_創新互聯,為您提供做網站、網頁設計公司、網站建設、自適應網站、網站排名、網站設計公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯