一個java swt傳統型程式開發到打包的總結(2)

來源:互聯網
上載者:User

三、關於檔案與流的問題

關於檔案的操作,一長輩寫的很全,我就抄一下:http://www.cnblogs.com/lovebread/archive/2009/11/23/1609122.html

1) 載入指定目錄下面的所有檔案

 1         //得到待匯入的目標檔案 2         File fromFile=new File(frompath); 3         if(!fromFile.isDirectory()){ 4             throw new Exception("請指定檔案夾!"); 5         } 6         //負載檔案 7         File[] fs=fromFile.listFiles(); 8         List<String> fileNames=new ArrayList<String>();        //檔案名稱 9         List<File> files=new ArrayList<File>();                //檔案10         //System.out.println("fs.length-->"+fs.length);11         for (File f : fs) {12             String fn=f.getName();13             if((!f.isDirectory())&&(fn.endsWith(".txt"))){        //以.txt結尾,不是檔案夾14                 int i=fn.lastIndexOf(".");15                 if((i>-1)&&i<fn.length())16                     fn=fn.substring(0,i);17                 //System.out.println("f.getName-->"+fn);18                 fileNames.add(fn);19                 files.add(f);20             }21         }

2) 寫入檔案

 1         //複製檔案到指定目錄,先得到目錄,再複製,這裡有個要注意的地方,要先在得到的目錄下面new一個檔案,然後才能把Java File對象的內容寫到這個檔案裡面 2         String tofilepath=sysRoot+"\\course\\user\\"; 3         int i=0; 4         BufferedInputStream inBuff = null; 5         BufferedOutputStream outBuff = null; 6         for(i=0;i<files.size();i++){ 7             File file=new File(tofilepath,fileNames.get(i)+".le"); 8             if(!file.exists()){ 9                 file.createNewFile();10             }11             inBuff=new BufferedInputStream(new FileInputStream(files.get(i)));12             outBuff=new BufferedOutputStream(new FileOutputStream(file));13             byte[] buff=new byte[1024];14             int len=0;15             while((len=inBuff.read(buff))!=-1){16                 outBuff.write(buff, 0, len);17             }18             outBuff.flush();19         }20         if (inBuff != null)21             inBuff.close();22         if (outBuff != null)23             outBuff.close();

3) 檔案裡面的內容換行:

  String nextLine=System.getProperty("line.separator");//用於換行 ,這個需要配合下面的一起使用,寫入到檔案時才會換行。

  在windows下面\r\n是換行,所以也可以是:String newxLine="\r\n";         

4) 寫入檔案:

String tempStr="這個是第一行!";
tempStr+=nextLine+"這個是第二行!"
BufferedOutputStream writer=new BufferedOutputStream(new FileOutputStream(conf)); writer.write(tempStr.getBytes(),0,tempStr.length());

注意,是:writer.write(tempStr.getBytes(),0,tempStr);

   不是:writer.write(tempStr);

如果是下面一種,檔案內容將不會換行

 

-----僅用於學習記錄。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.