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

文件读写

    博客分类:
  • 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();
     }
     该方法经过测试,支持中文处理,并且可以复制多种类型,比如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();
         }
     }

 

分享到:
评论
1 楼 weixuanfeng 2010-10-09  
很好很好。全部收下

相关推荐

    文件读写监控工具文件读写监控工具文件读写监控工具

    文件读写监控工具是计算机系统管理和维护中不可或缺的软件,它们可以帮助用户跟踪、记录和分析系统中的文件操作,包括打开、创建、修改、删除等动作。这类工具在故障排查、性能优化、安全审计等方面有着广泛的应用。...

    易语言大文件读写模块

    在易语言中,大文件读写是一个常见的需求,尤其在处理大数据、日志分析或者文件备份等场景下。本模块就是针对这种需求而设计的,名为“易语言大文件读写模块”。 该模块的核心功能是优化大文件的处理效率,避免一次...

    android文件读写权限

    在Android应用开发中,文件读写权限是至关重要的一个环节,因为这关乎到应用程序能否正常地存储和访问数据。Android操作系统采用严格的权限管理系统,确保应用只能在其被授权的范围内操作。下面将详细介绍Android中...

    Python中使用asyncio 封装文件读写

    ### Python中使用asyncio封装文件读写 #### 引言 在现代软件开发中,特别是在Web后端和服务端开发领域,非阻塞I/O技术变得越来越重要。这主要是因为随着互联网应用规模的增长,服务器需要处理成千上万个并发连接,...

    python中的文件读写练习题(csdn)————程序.pdf

    Python 文件读写练习题 Python 语言中处理文件读写是非常重要的一部分,本文将通过实践 exercises 介绍 Python 中的文件读写操作。 文件读写的重要性 在实际应用中,文件读写操作是非常常见的,例如读取数据文件...

    文件读写+图形用户界面

    1、 文件读写 包括两个内容:查找文件中“java”字符串的个数;利用命令行参数显示文件的最后指定行。 在查找“java”字符串个数的程序中,先读出文件内容,再逐个字符对比,找出“java”字符,最终把结果写入另一...

    Android 文件读写操作

    在Android系统中,文件读写操作是开发过程中常见的任务,涉及到资源文件、数据区文件以及外部存储(如SD卡)的访问。以下是对这些操作的详细说明: 一、资源文件的读取 1. 从resource的raw中读取文件数据: 资源...

    MFC INI文件读写

    ### MFC INI 文件读写详解 #### 一、概述 在 Windows 操作系统中,INI 文件是一种重要的配置文件格式,通常用于存储程序的配置信息。对于开发人员来说,掌握如何使用 MFC(Microsoft Foundation Classes)框架进行...

    Android 13读写权限变更,小米14 txt 文件读写

    对于开发者来说,这意味着需要更新代码以适配这些新规则,尤其是在进行文件读写操作时。本文将详细探讨Android 13的读写权限变更,以及如何在小米14设备上处理txt文件的读写测试。 首先,理解Android 13中的存储...

    csv文件读写操作

    对于大数据量的CSV文件,可以考虑使用更高效的文件读写方法,如`std::ifstream`和`std::ofstream`,或者使用内存映射文件(`CreateFileMapping`和`MapViewOfFile`)。 8. **测试与调试** 完成代码编写后,进行...

    File_文件读写_MFC读写文件_

    在编程领域,文件读写是常见的操作之一,尤其是在Windows应用程序开发中,MFC(Microsoft Foundation Classes)框架提供了方便的API来实现这一功能。MFC是一个C++类库,它封装了Windows API,使得开发者可以更加方便...

    C#文件读写操作

    在C#编程语言中,文件读写操作是基础且至关重要的功能,允许程序与本地文件系统交互。本文将深入探讨如何在C#中执行文件的读写操作,以及如何进行文件删除。 首先,让我们了解C#中用于文件操作的主要类:`System.IO...

    DWG文件读写开发库

    DWG文件读写开发库是专门用于处理DWG(Drawing)格式文件的工具,这种格式通常与AutoCAD软件紧密关联,用于存储二维和三维设计数据。这个开发库为程序员提供了在C++和C#编程环境中读取和写入DWG文件的能力,极大地...

    采用无缓冲方式实现文件读写.docx

    "采用无缓冲方式实现文件读写" 本文档是武汉大学计算机学院《Windows原理与应用》课程实验报告,旨在介绍如何使用无缓冲方式实现文件读写。该实验报告的主要内容包括实验目的、实验设计、实验原理和实验步骤等方面...

    c文件读写函数

    C语言文件读写函数详解 在 Linux 操作系统中,C 语言提供了多种文件读写函数,包括非标准文件读写函数和标准文件读写函数。下面将对这两种类型的文件读写函数进行详细介绍。 非标准文件读写函数 非标准文件读写...

    delphi 文件读写

    在Delphi编程环境中,文件读写是常见的操作,主要用于存储和检索数据。本文将深入探讨如何使用Delphi进行文本文件的读写操作,包括基本概念、常用函数和类,以及实际应用示例。 首先,了解文件系统的基本概念是至关...

    MFC txt文件读写

    在这个"**MFC txt文件读写**"的实践中,我们将探讨如何利用MFC来处理文本文件的读取和写入操作。 首先,我们需要了解MFC中的CFile类,它是处理文件操作的基础。CFile类提供了打开、关闭、读取和写入文件的基本方法...

    开发windows驱动程序,实现监控文件读写操作.zip

    本压缩包"开发windows驱动程序,实现监控文件读写操作.zip"提供了一个关于如何创建驱动程序以监控文件系统读写操作的实例。下面我们将深入探讨这一主题。 1. **驱动程序概述** - 驱动程序是硬件设备与操作系统之间...

Global site tag (gtag.js) - Google Analytics