`

Java里的File文件操作控制

阅读更多
一.获得控制台用户输入的信息
/** *//**获得控制台用户输入的信息
      * @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();
     }
    // 该方法经过测试,支持中文处理,并且可以复制多种类型,比如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();
         }
     }
分享到:
评论

相关推荐

    java file 文件操作例子

    在Java编程语言中,文件操作是一项基础且至关...不过,这里主要讲解了`File`类的基本使用,希望对你复习Java文件操作有所帮助。记住,良好的文件管理是任何项目的基础,确保正确处理文件能有效防止数据丢失和程序错误。

    java文件操作

    Java文件操作是编程中不可或缺的一部分,尤其是在处理I/O流、文件读写以及文件管理时。Apache Commons IO是一个非常实用的库,它为Java开发者提供了大量的工具类和方法,以简化文件操作。在这个场景中,我们关注的是...

    java 模拟windows文件操作

    - **File类**: `java.io.File`是Java中最基础的文件操作类,可以用来表示文件或者目录路径。通过`new File(String path)`构造一个File对象,然后可以调用如`exists()`, `mkdir()`, `delete()`, `renameTo(File dest...

    Java 7文件操作

    在Java 7中,文件操作得到了显著的改进,引入了`java.nio.file`包,其中最重要的新特性之一就是Path类的出现。Path类是Java 7文件系统接口(FileSystem API)的核心部分,它提供了一种抽象的方式来表示文件或目录的...

    getFile文件操作。

    本话题将聚焦于一个特定的文件操作——"getFile",这个概念可能来源于某个特定的库或者框架,或者是一个自定义的函数。尽管描述中并未提供详尽的信息,我们可以根据常规的编程实践来探讨文件操作的相关知识点。 ...

    JAVA_file.rar_操作 文件

    总的来说,Java为文件操作提供了全面的支持,从基本的创建、读写,到复杂的文件复制、移动,再到高级的流控制和文件属性管理,都能通过其丰富的API来实现。了解并熟练掌握这些知识点对于任何Java开发者来说都是至关...

    Java包与文件操作

    文件操作在Java中主要通过`java.io`包实现,例如使用`File`类来表示文件对象,`FileInputStream`和`FileOutputStream`进行读写操作。不过,描述中没有具体说明如何测试文件操作,这可能是通过在类中使用文件I/O功能...

    java文件操作大全

    以上就是Java文件操作的基本知识点,实际编程中还需要考虑异常处理、权限控制、效率优化等问题。在进行文件操作时,务必确保正确关闭打开的流,防止资源泄漏,并注意文件安全,避免未授权访问或数据丢失。

    Java 上传文件到 SharePoint

    首先,我们需要了解Java中用于文件操作的基本类,如`java.io.File`,它提供了创建、读取、写入和删除文件的方法。此外,为了与SharePoint交互,我们需要使用Microsoft提供的客户端对象模型(Client Object Model,...

    java读写文件,Java操作文件

    获取文件属性也是Java文件操作中的重要部分,可以帮助我们更好地管理文件系统。 ```java String path = request.getRealPath("/"); File f = new File(path, "ReadData.txt"); if (f.exists()) { System.out....

    Java Smart File

    "Java Smart File" 支持多文件选择,用户可以在一个操作中上传多个文件,这极大地简化了用户操作,提高了上传效率。在后台,组件会分别处理每个文件,开发者可以通过API获取每个文件的信息,进行后续的处理或存储。 ...

    Java文件操作源码大全

    Java文件操作是编程中常见的任务,...以上只是Java文件操作的一部分知识点,实际开发中还会涉及文件权限控制、并发访问、流操作等更多内容。了解并熟练掌握这些知识点,能帮助开发者高效、安全地处理各种文件操作需求。

    java中File类总结

    `File`类是Java中处理文件和目录的核心类之一,它提供了丰富的API来帮助开发者实现各种文件操作需求。熟练掌握`File`类的构造方法和常用方法对于进行文件处理非常重要。此外,了解一些扩展方法也有助于更好地控制...

    java写文件固定大小为2G

    总结来说,Java文件读写提供了丰富的API来处理各种文件操作。在处理大文件或需要限制文件大小的场景时,理解如何跟踪已写入的数据、适时关闭和创建新文件至关重要。这个过程涉及到文件流的管理和异常处理,确保数据...

    用java写的本地文件操作

    1. **文件操作API**:Java提供了丰富的`java.io`包,其中包含了处理文件的各种类,如`File`、`FileWriter`、`FileReader`、`BufferedReader`和`BufferedWriter`等。这些类用于创建、打开、关闭、读取和写入文件。 2...

    java开源项目(2)Java File Copy Library

    Java File Copy Library是一个由Java...开发者可以将其集成到自己的应用中,提升文件操作的效率和可靠性。在实际使用中,还需要仔细阅读项目文档,了解如何正确使用API,以及如何定制和扩展其功能以适应特定项目需求。

    自己写的java中文件的操作工具类,包括对目录的管理

    1. **文件操作**:在Java中,`java.io`包提供了丰富的类来执行文件操作,如`File`类用于文件和目录的基本操作,`FileReader`和`FileWriter`用于读写文本文件,`BufferedReader`和`BufferedWriter`用于提高读写效率,...

    对文件的操作(JAVA例子)

    本文档主要介绍了在Java程序中进行文件操作的一些基本方法,包括文件的创建、删除、移动等。这些操作是通过Java的`java.io`包中的类来实现的。下面将详细介绍文档中提到的各个功能。 #### 文件夹的创建 在Java中,...

    java web download file

    Java Web 下载文件 在Java Web开发中,文件下载是一个...总的来说,Java Web文件下载涉及HTTP协议、响应头配置、I/O操作以及可能的前端交互。通过理解这些核心概念,你可以构建出健壮且用户体验良好的文件下载功能。

    java读取文件方法大全

    ### Java读取文件方法大全:读取File流等技术 在Java中,读取文件是一项基本且重要的操作,它可以通过多种方式实现,如字节流、字符流和基于行的读取。下面将详细介绍这些方法: #### 字节级读取:`...

Global site tag (gtag.js) - Google Analytics