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

  1. public String getInputMessage() throws IOException...{
  2. System.out.println("请输入您的命令∶");
  3. byte buffer[]=new byte[1024];
  4. int count=System.in.read(buffer);
  5. char[] ch=new char[count-2];//最后两位为结束符,删去不要
  6. for(int i=0;i<count-2;i++)
  7. ch[i]=(char)buffer[i];
  8. String str=new String(ch);
  9. return str;
  10. }

可以返回用户输入的信息,不足之处在于不支持中文输入,有待进一步改进。

     二.复制文件
     1.以文件流的方式复制文件

  1. public void copyFile(String src,String dest) throws IOException...{
  2. FileInputStream in=new FileInputStream(src);
  3. File file=new File(dest);
  4. if(!file.exists())
  5. file.createNewFile();
  6. FileOutputStream out=new FileOutputStream(file);
  7. int c;
  8. byte buffer[]=new byte[1024];
  9. while((c=in.read(buffer))!=-1)...{
  10. for(int i=0;i<c;i++)
  11. out.write(buffer[i]);
  12. }
  13. in.close();
  14. out.close();
  15. }

该方法经过测试,支持中文处理,并且可以复制多种类型,比如txt,xml,jpg,doc等多种格式

     三.写文件

1.利用PrintStream写文件

  1. public void PrintStreamDemo()...{
  2. try ...{
  3. FileOutputStream out=new FileOutputStream("D:/test.txt");
  4. PrintStream p=new PrintStream(out);
  5. for(int i=0;i<10;i++)
  6. p.println("This is "+i+" line");
  7. } catch (FileNotFoundException e) ...{
  8. e.printStackTrace();
  9. }
  10. }

2.利用StringBuffer写文件

  1. public void StringBufferDemo() throws IOException......{
  2. File file=new File("/root/sms.log");
  3. if(!file.exists())
  4. file.createNewFile();
  5. FileOutputStream out=new FileOutputStream(file,true);
  6. for(int i=0;i<10000;i++)......{
  7. StringBuffer sb=new StringBuffer();
  8. sb.append("这是第"+i+"行:前面介绍的各种方法都不关用,为什么总是奇怪的问题 ");
  9. out.write(sb.toString().getBytes("utf-8"));
  10. }
  11. out.close();
  12. }

该方法可以设定使用何种编码,有效解决中文问题。

四.文件重命名

  1. public void renameFile(String path,String oldname,String newname)...{
  2. if(!oldname.equals(newname))...{//新的文件名和以前文件名不同时,才有必要进行重命名
  3. File oldfile=new File(path+"/"+oldname);
  4. File newfile=new File(path+"/"+newname);
  5. if(newfile.exists())//若在该目录下已经有一个文件和新文件名相同,则不允许重命名
  6. System.out.println(newname+"已经存在!");
  7. else...{
  8. oldfile.renameTo(newfile);
  9. }
  10. }
  11. }

五.转移文件目录
     转移文件目录不等同于复制文件,复制文件是复制后两个目录都存在该文件,而转移文件目录则是转移后,只有新目录中存在该文件。

  1. public void changeDirectory(String filename,String oldpath,String newpath,boolean cover)...{
  2. if(!oldpath.equals(newpath))...{
  3. File oldfile=new File(oldpath+"/"+filename);
  4. File newfile=new File(newpath+"/"+filename);
  5. if(newfile.exists())...{//若在待转移目录下,已经存在待转移文件
  6. if(cover)//覆盖
  7. oldfile.renameTo(newfile);
  8. else
  9. System.out.println("在新目录下已经存在:"+filename);
  10. }
  11. else...{
  12. oldfile.renameTo(newfile);
  13. }
  14. }
  15. }

     六.读文件
     1.利用FileInputStream读取文件

  1. public String FileInputStreamDemo(String path) throws IOException...{
  2. File file=new File(path);
  3. if(!file.exists()||file.isDirectory())
  4. throw new FileNotFoundException();
  5. FileInputStream fis=new FileInputStream(file);
  6. byte[] buf = new byte[1024];
  7. StringBuffer sb=new StringBuffer();
  8. while((fis.read(buf))!=-1)...{
  9. sb.append(new String(buf));
  10. buf=new byte[1024];//重新生成,避免和上次读取的数据重复
  11. }
  12. return sb.toString();
  13. }

2.利用BufferedReader读取

在IO操作,利用BufferedReader和BufferedWriter效率会更高一点

  1. public String BufferedReaderDemo(String path) throws IOException...{
  2. File file=new File(path);
  3. if(!file.exists()||file.isDirectory())
  4. throw new FileNotFoundException();
  5. BufferedReader br=new BufferedReader(new FileReader(file));
  6. String temp=null;
  7. StringBuffer sb=new StringBuffer();
  8. temp=br.readLine();
  9. while(temp!=null)...{
  10. sb.append(temp+" ");
  11. temp=br.readLine();
  12. }
  13. return sb.toString();
  14. }

   3.利用dom4j读取xml文件

  1. public Document readXml(String path) throws DocumentException, IOException...{
  2. File file=new File(path);
  3. BufferedReader bufferedreader = new BufferedReader(new FileReader(file));
  4. SAXReader saxreader = new SAXReader();
  5. Document document = (Document)saxreader.read(bufferedreader);
  6. bufferedreader.close();
  7. return document;
  8. }

七.创建文件(文件夹)

1.创建文件夹  

  1. public void createDir(String path)...{
  2. File dir=new File(path);
  3. if(!dir.exists())
  4. dir.mkdir();
  5. }


2.创建新文件

  1. public void createFile(String path,String filename) throws IOException...{
  2. File file=new File(path+"/"+filename);
  3. if(!file.exists())
  4. file.createNewFile();
  5. }

八.删除文件(目录)
  1.删除文件     

  1. public void delFile(String path,String filename)...{
  2. File file=new File(path+"/"+filename);
  3. if(file.exists()&&file.isFile())
  4. file.delete();
  5. }


2.删除目录

要利用File类的delete()方法删除目录时,必须保证该目录下没有文件或者子目录,否则删除失败,因此在实际应用中,我们要删除目录,必须利用递归删除该目录下的所有子目录和文件,然后再删除该目录。

  1. public void delDir(String path)...{
  2. File dir=new File(path);
  3. if(dir.exists())...{
  4. File[] tmp=dir.listFiles();
  5. for(int i=0;i<tmp.length;i++)...{
  6. if(tmp[i].isDirectory())...{
  7. delDir(path+"/"+tmp[i].getName());
  8. }
  9. else...{
  10. tmp[i].delete();
  11. }
  12. }
  13. dir.delete();
  14. }
  15. }

java文件创建、删除、读取、写入操作大全的更多相关文章

  1. Python文件的读取写入操作

    一.打开文件.关闭文件操作 想要读取文件或是写入文件,第一步便是打开文件,最后一步便是关闭文件.这里介绍两种打开(关闭)文件的方式: 1.open()方法 f=open(file_name[,acce ...

  2. Javascript(JS)对Cookie的读取、删除、写入操作帮助方法

    var CookieUtils = { get: function (name) { var cookieName = encodeURIComponent(name) + '=', cookieSt ...

  3. Qt XML读取写入操作

    XML(eXtensible Markup Language,可扩展标记语言)是普通用于数据交换和数据存储的一种多用途文本文件格式: SVG(可标量矢量图形)XML格式,QtSvg模块提供了可用于载入 ...

  4. java基础之读取文件方法大全

    1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如 ...

  5. 人生苦短_我用Python_configparser/yaml对配置文件读取/写入操作_010

    第一,我们先开始安装yaml库,configparser是自带库,yaml库是针对读取yml文件,configparser现阶段我只用于读取conf文件 首先:1)对象文件为:data.yml,下面的 ...

  6. c#cookie读取写入操作

    public static void SetCookie(string cname, string value, int effective) { HttpCookie cookie = new Ht ...

  7. 关于Python中读取写入文件并进行文件与用户交互的操作

    一.提前知识点 在python中是同样和其他语言一样可以进行文件的读取写入操作,值得注意的是,Python中打开文件读取的方式有几种,分别是以下几种: f = open('username.txt') ...

  8. [Python] python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等

    1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...

  9. Java读取json文件并对json数据进行读取、添加、删除与修改操作

    转载:http://blog.csdn.net/qing_yun/article/details/46865863#t0   1.介绍 开发过程中经常会遇到json数据的处理,而单独对json数据进行 ...

随机推荐

  1. Servlet的学习之Response响应对象(1)

    在之前学习了Servlet中的主体结构,包括Servlet的生命周期方法,和非生命周期方法能获取的一些非常重要的对象如ServletConfig.ServletContext对象等,而从这篇开始我们将 ...

  2. spring mvc controller json数据

    项目中遇到个批处理,需要前台传递一个json格式对象数组,如下:var data={   "wos":[{"id":1,"satisfaction&q ...

  3. ajax获取的全部是object,我要获取的是json

     编程语言 ---------------------------------------------前台: $(document).ready(function() {  var data= []; ...

  4. ios23-文件上传

    1.上传图片 3. // //  ios23_uploadViewController.h //  ios23-upload // //  Created by  on 13-6-17. //  Co ...

  5. TPL异步并行编程之任务超时

    此处参考自阿涛的博文:http://www.cnblogs.com/HelloMyWorld/p/5526914.html 一 自己定义 基本的思路: net中异步操作由于是交给线程来实现,因此不可能 ...

  6. uploadify,实际开发案例【选择完文件点击上传才上传】

    <script type="text/javascript"> )+Math.floor(Math.random()*)+']-'; //设置随机文件前缀. $k(fu ...

  7. 591 - Box of Bricks

     Box of Bricks  Little Bob likes playing with his box of bricks. He puts the bricks one upon another ...

  8. linux运维常用命令集

    1.删除0字节文件 find -type f -size 0 -exec rm -rf {} \;   2.查看进程 按内存从大到小排列 PS -e   -o "%C   : %p : %z ...

  9. html怎么引用css

    <head> <title>统一站内风格</title> <link rel="stylesheet" type="text/c ...

  10. Delphi的指针 good

    Pointers are like jumps, leading wildly from one part of the data structure to another. Their introd ...