国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用技巧:對Java編程中的文件操作詳解

2019-11-17 05:57:29
字體:
來源:轉載
供稿:網友

一.獲得控制臺用戶輸入的信息

/** *//**獲得控制臺用戶輸入的信息     * @return     * @throws IOException     */    public String getInputMessage() throws IOException...{        System.out.

可以返回用戶輸入的信息,不足之處在于不支持中文輸入,有待進一步改進。

二.復制文件

1.以文件流的方式復制文件

/** *//**以文件流的方式復制文件     * @param src 文件源目錄     * @param dest 文件目的目錄     * @throws IOException       */    public void copyFile(String src,String dest) throws IOException...{        FileInputStream in=new FileInputStream(src);        File file=new File(dest);        if(!file.exists())            file.createNewFile();        FileOutputStream out=new FileOutputStream(file);        int c;        byte buffer[]=new byte[1024];        while((c=in.read(buffer))!=-1)...{            for(int i=0;i<c;i++)                out.write(buffer[i]);                }        in.close();        out.close();    }

該方法經過測試,支持中文處理,并且可以復制多種類型,比如txt,xml,jpg,doc等多種格式

三.寫文件

1.利用PrintStream寫文件

/** *//**     * 文件輸出示例     */    public void PrintStreamDemo()...{        try ...{            FileOutputStream out=new FileOutputStream("D:/test.txt");            PrintStream p=new PrintStream(out);            for(int i=0;i<10;i++)                p.println("This is "+i+" line");        } catch (FileNotFoundException e) ...{            e.printStackTrace();        }    }

2.利用StringBuffer寫文件

public void StringBufferDemo() throws IOException......{        File file=new File("/root/sms.log");        if(!file.exists())            file.createNewFile();        FileOutputStream out=new FileOutputStream(file,true);                for(int i=0;i<10000;i++)......{            StringBuffer sb=new StringBuffer();            sb.append("這是第"+i+"行:前面介紹的各種方法都不關用,為什么總是希奇的問題 ");            out.write(sb.toString().getBytes("utf-8"));        }                out.close();    }

該方法可以設定使用何種編碼,有效解決中文問題。

四.文件重命名

/** *//**文件重命名     * @param path 文件目錄     * @param oldname  原來的文件名     * @param newname 新文件名     */    public void renameFile(String path,String oldname,String newname)...{        if(!oldname.equals(newname))...{//新的文件名和以前文件名不同時,才有必要進行重命名            File oldfile=new File(path+"/"+oldname);            File newfile=new File(path+"/"+newname);            if(newfile.exists())//若在該目錄下已經有一個文件和新文件名相同,則不答應重命名                System.out.println(newname+"已經存在!");            else...{                oldfile.renameTo(newfile);            }         }             }

五.轉移文件目錄

轉移文件目錄不等同于復制文件,復制文件是復制后兩個目錄都存在該文件,而轉移文件目錄則是轉移后,只有新目錄中存在該文件。

/** *//**轉移文件目錄     * @param filename 文件名     * @param oldpath 舊目錄     * @param newpath 新目錄     * @param cover 若新目錄下存在和轉移文件具有相同文件名的文件時,      是否覆蓋新目錄下文件,cover=true將會覆蓋原文件,否則不操作     */    public void changeDirectory(String filename,String oldpath,String newpath,boolean cover)...{        if(!oldpath.equals(newpath))...{            File oldfile=new File(oldpath+"/"+filename);            File newfile=new File(newpath+"/"+filename);            if(newfile.exists())...{//若在待轉移目錄下,已經存在待轉移文件                if(cover)//覆蓋                    oldfile.renameTo(newfile);                else                    System.out.println("在新目錄下已經存在:"+filename);            }            else...{                oldfile.renameTo(newfile);            }        }           }

六.讀文件

1.利用FileInputStream讀取文件

/** *//**讀文件     * @param path     * @return     * @throws IOException     */    public String FileInputStreamDemo(String path) throws IOException...{        File file=new File(path);        if(!file.exists()file.isDirectory())            throw new FileNotFoundException();        FileInputStream fis=new FileInputStream(file);        byte[] buf = new byte[1024];        StringBuffer sb=new StringBuffer();        while((fis.read(buf))!=-1)...{            sb.append(new String(buf));                buf=new byte[1024];//重新生成,避免和上次讀取的數據重復        }        return sb.toString();    }

2.利用BufferedReader讀取

在IO操作,利用BufferedReader和BufferedWriter效率會更高一點

/** *//**讀文件     * @param path     * @return     * @throws IOException     */    public String BufferedReaderDemo(String path) throws IOException...{        File file=new File(path);        if(!file.exists()file.isDirectory())            throw new FileNotFoundException();        BufferedReader br=new BufferedReader(new FileReader(file));        String temp=null;        StringBuffer sb=new StringBuffer();        temp=br.readLine();        while(temp!=null)...{            sb.append(temp+" ");            temp=br.readLine();        }        return sb.toString();    }

3.利用dom4j讀取xml文件

/** *//**從目錄中讀取xml文件     * @param path 文件目錄     * @return     * @throws DocumentException     * @throws IOException     */    public Document readXml(String path) throws DocumentException, IOException...{        File file=new File(path);        BufferedReader bufferedreader = new BufferedReader(new FileReader(file));        SAXReader saxreader = new SAXReader();        Document document = (Document)saxreader.read(bufferedreader);        bufferedreader.close();        return document;    }

七.創建文件(文件夾)

1.創建文件夾 /** *//**創建文件夾

* @param path  目錄     */    public void createDir(String path)...{        File dir=new File(path);        if(!dir.exists())            dir.mkdir();    }

2.創建新文件 /** *//**創建新文件

* @param path 目錄     * @param filename 文件名     * @throws IOException     */    public void createFile(String path,String filename) throws IOException...{        File file=new File(path+"/"+filename);        if(!file.exists())            file.createNewFile();    }

八.刪除文件(目錄)

1.刪除文件

/**刪除文件     * @param path 目錄     * @param filename 文件名     */    public void delFile(String path,String filename)...{        File file=new File(path+"/"+filename);        if(file.exists()&&file.isFile())            file.delete();    }

2.刪除目錄

要利用File類的delete()方法刪除目錄時,必須保證該目錄下沒有文件或者子目錄,否則刪除失敗,因此在實際應用中,我們要刪除目錄,必須利用遞歸刪除該目錄下的所有子目錄和文件,然后再刪除該目錄。

/**遞歸刪除文件夾     * @param path     */    public void delDir(String path)...{        File dir=new File(path);        if(dir.exists())...{            File[] tmp=dir.listFiles();            for(int i=0;i<tmp.length;i++)...{                if(tmp[i].isDirectory())...{                    delDir(path+"/"+tmp[i].getName());                }                else...{                    tmp[i].delete();                }            }            dir.delete();        }    }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜丰县| 永年县| 岳普湖县| 长春市| 遂川县| 高青县| 惠安县| 吴桥县| 湘阴县| 上栗县| 鄂伦春自治旗| 辉南县| 栾城县| 龙州县| 桃园市| 嫩江县| 长泰县| 宜兰市| 兴仁县| 和林格尔县| 榆社县| 饶阳县| 库车县| 新化县| 县级市| 沈阳市| 宁晋县| 靖远县| 会同县| 尚志市| 和平县| 洛南县| 瓦房店市| 沽源县| 湖州市| 五河县| 龙井市| 夏河县| 蕉岭县| 新巴尔虎右旗| 梓潼县|