`
AndyOne
  • 浏览: 66777 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java文件操作大全

    博客分类:
  • java
阅读更多

.得控制台用户输入的信息

/**得控制台用户输入的信息

     * @return

     * @throws IOException

     */

     public String getInputMessage() throws IOException{

        System.out.println("请输入您的命令∶");

        byte buffer[]=new byte[1024];

        int count=System.in.read(buffer);

        char[] ch=new char[count-2];//最后两位为结束符,去不要

        for(int i=0;i<count-2;i++)

            ch[i]=(char)buffer[i];

            String str=new String(ch);

            return str;

    }/** */...

 

可以返回用户输入的信息,不足之在于不支持中文入,有待

 

.制文件

 

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();

    }/** */...

 

方法经过测试,支持中文理,并且可以制多种类型,比如txtxmljpgdoc等多格式

 

.写文件

 

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操作,利用BufferedReaderBufferedWriter效率会更高一点

    /**文件

     * @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.利用dom4jxml文件

    /**从目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.除目 要利用Filedelete()方法除目录时,必证该下没有文件或者子目,否则删除失,因此在实际应用中,我除目,必利用递归删下的所有子目和文件,然后再

 /**递归删除文件

     * @param path

     MS Pゴ&

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics