討論區快速選單
知識庫快速選單
政府補助!學嵌入式+物聯網 軟體開發過程中有哪些資安漏洞? 網路投保旅行平安險
[ 回上頁 ] [ 討論區發言規則 ]
這個題目小弟不會請大大求救
更改我的閱讀文章字型大小
作者 : neor(小任)
[ 貼文 1 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/6/26 下午 03:24:56
題目如下 .... 有大大可以幫寫嗎

小弟我 寫了頭快爆掉了 還是寫不出來~"~

撰寫一個檔案複製(Copy)的程式,系統之功能條列如下列分項:
1. 必須利用Java提供的Byte檔案讀取與寫入功能『逐部』實作,不得引用任何既存之檔案複製類別。
2. 詢問使用者想要複製哪個路徑下的來源檔案?(可以接受使用者直接copy檔案總管的真實路徑貼入詢問提示列,例如:C:\Windows\notepad.exe)
3. 詢問使用者想要將檔案複製到哪個路徑下,以及檔案名稱?(例如:D:\Java\note.exe,表示要將檔案copy到D碟的Java目錄下,將目的檔案命名為note.exe)
4. 透過物件類別的呼叫引用,來協助檔案複製的運算。
5. 此題目必須考慮來源檔案及目的檔案是否已經存在,存在的話必須提出警告並且跳出程式運行。




以下是我的程式碼 不曉得哪裡有錯>"<
mport java.util.*;
import java.io.*;
import myClass.*;
public class TEST07
{
    public static void main(String[] args)throws IOException
    {
     lastcopy0 Sty = new lastcopy0;
     Scanner K = new Scanner(System.in);
     System.out.print("請輸入複製哪個路徑下的來源檔案:");
     String cPath = K.nextLine();
     cPath = cPath.replaceAll("\\\\", "/");
     System.out.print("請輸入要複製到哪個路徑下的檔案:");
     String aPath = K.nextLine();
     cPath = cPath.replaceAll("\\\\", "/");
     File myF_1 = new File(cPath);
     if(myF_1.exists()){
     Sty.getcopy(myF_1);
     }else{
     System.out.println("找不到檔案!!");
     }
    
    }
}

接下來這個程式碼 是 要存取的...
package myClass;
public class lastcopy0
{
    File cSty;
    public boolean getcopy(File cSty;)
    {
     FileReader fr = new FileReader(cSty);
     BufferedReader br = new BufferedReader(fr);
     StringBuffer SB = new StringBuffer();
     File S = new File(cSty);
     FileWriter fw = new FileWriter(S);
     BufferedWriter bw = new BufferedWriter(fw);
     String[] cTemp = myF_1.list();
     for(String S:cTemp){
     File myF_2 = new File(myF_1, S);
     if(myF_2.isDirectory()){
    
     }else{
     System.out.println("找不到檔案及目的檔案不存在!!");
     }
     }
    }
}
作者 : kimisme(蒼邪)
[ 貼文 23 | 人氣 4534 | 評價 20 | 評價/貼文 0.87 | 送出評價 9 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人neor註記此篇回應為很有道理 2010/6/28 上午 12:29:59
主程式 Test07.java
import java.util.*;
import java.io.*;
import componet.file.*;

public class Test07 {

/**
* @param args
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub

String sFileName;
String dPath;
boolean copySuccess;
Scanner scannerSrc = new Scanner(System.in);
System.out.println("請輸入複製哪個路徑下的來源檔案:");
String sfilePath = scannerSrc.nextLine().replaceAll("\\\\", "/");
File sFile = new File(sfilePath);
if( !sFile.isFile() || !sFile.exists() ){
System.out.println("要複製的來源檔案不存在!請查明");
}else{
//取得來源檔案名稱
sFileName = sFile.getName();
CopyFile copyFile = new CopyFile();
Scanner scannerDes = new Scanner(System.in);
System.out.println("請輸入要複製到哪個路徑下的檔案:");
String dfilePath = scannerDes.nextLine().replaceAll("\\\\", "/");
File dFile = new File(dfilePath);
if( dFile.isFile() && dFile.exists() ){ // 如果輸入有檔名的路徑,檢查檔案存不存在
System.out.println("目的地檔案已存在,請查明");
}else if(dFile.isFile() && !dFile.exists()){
copySuccess = copyFile.copyFile(sFile, dFile);
if( copySuccess )
System.out.println("複製檔案成功");
else {
System.out.println("複製檔案失敗");
}
}else if( dFile.isDirectory() ){ //如果只輸入目錄的路徑的話,則目的地檔名用來源的檔名
dPath = dFile.getPath().replaceAll("\\\\", "/");
if(dPath.substring(dPath.length()-1) != "/" )
dPath += "/"+sFileName;
File prefixDesFile = new File(dPath);
if( prefixDesFile.exists() ){
System.out.println("目的地檔案已存在!請查明");
}else{
//檢查都沒問題後,開始複製
copySuccess = copyFile.copyFile(sFile, prefixDesFile);
if( copySuccess )
System.out.println("複製檔案成功");
else {
System.out.println("複製檔案失敗");
}
}

}else{
System.out.println("要複製的目的地不是目錄或檔案!請查明");
}

}
}

}


複製檔案的程式: CopyFile.java

package componet.file;
import java.io.*;

public class CopyFile {

private boolean result;

public CopyFile(){};

public Boolean copyFile(File srcFile, File desFile) throws IOException{


try {
     byte[] data = new byte[1];

     BufferedInputStream bufferedInputStream =
     new BufferedInputStream(
     new FileInputStream(srcFile));
     BufferedOutputStream bufferedOutputStream =
     new BufferedOutputStream(
     new FileOutputStream(desFile));

     while(bufferedInputStream.read(data) != -1) {
     bufferedOutputStream.write(data);
     }
    
     // 將緩衝區中的資料全部寫出
     bufferedOutputStream.flush();

     // 關閉串流
     bufferedInputStream.close();
     bufferedOutputStream.close();
     this.result = true;
     }
     catch(ArrayIndexOutOfBoundsException e) {
     this.result = false;
     }
     catch(IOException e) {
     this.result = false;
     }finally{
     return this.result;
     }
}
 
}
 板主 : 風月
 > Java入門一般區 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Java入門一般區 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Java入門一般區
1 洋將 2410 
2 Aron 2130 
3 Aries 1510 
4 DEMO999 1310 
5 Ben 990 
6 ramb 620 
7 ozzy 570 
8 tand 460 
9 Huah 410 
10 vindy 400 
Java入門一般區
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875