java文件读写操作大全

转自:http://www.cnblogs.com/zhuocheng/archive/2011/12/12/2285290.html

————————————————————————————————————————————

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

     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.以文件流的方式复制文件

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();
     }
     该方法可以设定使用何种编码,有效解决中文问题。
四.文件重命名
    
     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);
             }
         }         
     }

五.转移文件目录
     转移文件目录不等同于复制文件,复制文件是复制后两个目录都存在该文件,而转移文件目录则是转移后,只有新目录中存在该文件。
    
     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读取文件

    
     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效率会更高一点

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文件

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.创建文件夹  
     public void
createDir(String path)...{
         File dir=new
File(path);
         if(!dir.exists())
             dir.mkdir();
     }
2.创建新文件
     public
void createFile(String path,String filename) throws
IOException...{
         File file=new
File(path+"/"+filename);
         if(!file.exists())
             file.createNewFile();
     }
     八.删除文件(目录)
1.删除文件     
     public
void delFile(String path,String filename)...{
         File file=new
File(path+"/"+filename);
         if(file.exists()&&file.isFile())
             file.delete();
     }
2.删除目录
要利用File类的delete()方法删除目录时,必须保证该目录下没有文件或者子目录,否则删除失败,因此在实际应用中,我们要删除目录,必须利用递归删除该目录下的所有子目录和文件,然后再删除该目录。  
     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();
         }
     }

时间: 2024-10-05 20:34:13

java文件读写操作大全的相关文章

java文件读写操作类

借鉴了项目以前的文件写入功能,实现了对文件读写操作的封装 仅仅需要在读写方法传入路径即可(可以是绝对或相对路径) 以后使用时,可以在此基础上改进,比如: 写操作: 1,对java GUI中文本框中的内容进行捕获,放在txt文本文档中 2,对各种类型数据都以字符串的形式逐行写入 3,对全局数组的内容进行写入 读操作: 获取文件行数 对逐行字符串型数据进行类型转换,放入二维数组中 为后面算法处理提供入口,但是要小心的是:不可以将行数用全局变量做计数器,否则每次读入是全局变量累加出错,应重新开始读取

java文件读写操作

Java IO系统里读写文件使用Reader和Writer两个抽象类,Reader中read()和close()方法都是抽象方法.Writer中 write(),flush()和close()方法为抽象方法.子类应该分别实现他们. Java IO已经为我们提供了三个方便的Reader的实现类,FileReader,InputStreamReader和BufferedReader.其中最重要的类是InputStreamReader, 它是字节转换为字符的桥梁.你可以在构造器重指定编码的方式,如果不

Java文件读写操作指定编码方式防乱码

读文件:BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符.数组和行的高效读取. 可以指定缓冲区的大小,或者可使用默认的大小.大多数情况下,默认值就足够大了. 通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求.因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader).例如, BufferedReader in   = n

Java文件读写操作具体代码实现

可以直接下载源文件使用:http://download.csdn.net/detail/zhanghao_hulk/8638541 package test; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.File

java文件读写操作指定编码格式

读文件: BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符.数组和行的高效读取. 可以指定缓冲区的大小,或者可使用默认的大小.大多数情况下,默认值就足够大了. 通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求.因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader).例如, BufferedReader in   =

【java 文件读写操作】 生成随机数,写入txt,然后从txt中读出

1.把生成的随机数写入到文件中 1 public static void WriterFun(){ 2 //获得路径 3 String filepath = System.getProperty("user.dir"); 4 filepath += "\\file.txt"; 5 6 File file = new File(filepath); 7 if(!file.exists()){ 8 try { 9 file.createNewFile(); 10 } c

Android数据存储——文件读写操作(File)

Android文件读写操作 一.文件的基本操作 Android中可以在设备本身的存储设备或外接的存储设备中创建用于保存数据的文件.在默认状态下,文件是不能在不同程序间共享的. 当用户卸载您的应用程序时,这些文件删除. 文件存储数据可以通过openFileOutput方法打开一个文件(如果这个)文件不存在就自动创建这个文件),通过load方法来获取文件中的 数据,通过deleteFile方法删除一个指定的文件. 1,常用方法介绍: File是通过FileInputStream和FileOutput

Java 文件写操作

在进行文件写操作的时候,有两种操作方方式.一个是连续写,一个是覆盖式写. 代码如下: import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; // text:要写入的内容:isAppend:写入方式,true为连续写,false为覆盖式写入. public void write(String text

php学习基础-文件系统(二) 文件读写操作、文件资源处理

一.文件的打开与关闭 /* *读取文件中的内容 * file_get_contents(); //php5以上 * file() * readfile(); * * 不足:全部读取, 不能读取部分,也不能指定的区域 * * fopen() * fread() * fgetc() * fgets() * * * * * 写入文件 * file_put_contents("URL", "内容字符串"); //php5以上 * 如果文件不存在,则创建,并写入内容 * 如果