当前位置:编程学习 > JAVA >>

Java文件操作

 

   java对文件的操作,提供了上百个类来操作。

 

对与我们常用的有,outputstreamwriter、writer、bufferedoutputstream、fileoutputstream以及fileinputstream、reader、inputstreamreader等相关类

 

先做个比较:对文本文件操作时,我们一般使用filereader、bufferedreader类;而非文件、即二进制文件操作时,我们使用inputstream以及相关类、而对于流的操作,在远程接口rmi,或者通信类的业务处理中,应用较多。

 

fileoutputstream以及bufferedoutputstream对文件写的操作;当操作大文件时,使用bufferedoutputstream的效率会明显比fileoutputstream高很多。

当然bufferedoutputstream继承自filteroutputstream;所以其功能也相当的丰富。并且在很多应用中我们都用到了filteroutputstream这个类,比如zip,jar包、rmi类和接口、crypto提供加密的类和接口等等

 

文件操作类中,也还有很多比较有用的类,比如文件流描述类filedescriptor等等;有待挖掘

 

当有特殊需求是,我们可以继承上面的接口或者扩展上面的类,来实现特殊的业务。

 

 

Java代码 

package com.xiva.demo;import java.io.bufferedoutputstream;import java.io.bufferedreader;import java.io.bufferedwriter;import java.io.file;import java.io.fileoutputstream;import java.io.filereader;import java.io.filewriter;import java.io.ioexception;import java.io.inputstream;import java.io.outputstream;import java.io.outputstreamwriter;import java.io.reader;import java.io.writer;import java.util.scanner;import org.junit.test;public class filedemo {        /**  *   * @description 删除文件     * @author xiva  */ @test public void deletefile(){     file file = new file("src/_tian.jpg");      boolean res = false;        if(file.exists()){          res = file.delete();        }       if(res){            system.out.println("delete success!");      }else{          system.out.println("delete fail!");     }   }       /**  *   * @description 文件重命名    * @author xiva  */ @test public void renamefile(){     file file = new file("src/_tian.jpg");      boolean res = false;                if(file.exists() && file.isfile()){         res = file.renameto(new file("src/tian.jpg"));      }       if(res){            system.out.println("copy success!");        }else{          system.out.println("copy fail!");       }   }       /**  *   * @description 读取文本文件内容     * @author xiva  * @throws ioexception   */ @test public void readfile() throws ioexception{        inputstream is = filedemo.class.getclassloader().getresourceasstream("dbcpconfig.properties");//        file file = new file("src/content.txt");//      filereader freader = new filereader(file);      //流编码才是字节编码//       reader isreader = new inputstreamreader(is, "utf-8");//     bufferedreader buffer = new bufferedreader(isreader);//     string linestr;//       linestr = buffer.readline();//      while(linestr != null){//           system.out.println(linestr);//          linestr = buffer.readline();//      }       //scanner类提供更多方便的方法,最为主要的是为文本文件操作提供便利的函数        scanner sc = new scanner(is,"utf-8");       while(sc.hasnextline()){            system.out.println(sc.nextline());      }               is.close(); }       /**  *   * @description filewriter写文件    * @author xiva  * @throws ioexception   */ @test public void writefile() throws ioexception{       file file = new file("src/test.txt");       if(!file.exists()){         file.createnewfile();       }       //      reader isreader = new filereader(file);//       bufferedreader buffer = new bufferedreader(isreader);//     string linestr;//       linestr = buffer.readline();                scanner sc = new scanner(file,"utf-8");     stringbuffer sbuffer = new stringbuffer();      while (sc.hasnextline()){           sbuffer.append(sc.nextline());      }       //append if true, then bytes will be written to the end of the file rather than the beginning       filewriter fw = new filewriter(file,true);      bufferedwriter bw = new bufferedwriter(fw);             bw.append(sbuffer.tostring());      bw.write("i'm xiva,我是xiva");        bw.newline();       bw.write("i'm njit.shot_go,我是shot_go");//       string message = "i'm njit.shot_go,我是shot_go";//        for(char mc:message.tochararray()){//           bw.append(mc);//        }               bw.flush();     bw.close();     fw.close(); }       /**  *   * @description fileoutputstream写文件  * @author xiva  * @throws ioexception   */ @test public void writefosfile() throws ioexception{        file file = new file("src/test.txt");       if(!file.exists()){         file.createnewfile();       }       //append if true, then bytes will be written to the end of the file rather than the beginning       fileoutputstream fos = new fileoutputstream(file,true);     bufferedoutputstream bos = new bufferedoutputstream(fos);       for (int i=0; i<100000; i++)

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,