对Java编程中的文件操作详解.docx

上传人:b****4 文档编号:26944128 上传时间:2023-06-24 格式:DOCX 页数:9 大小:16.74KB
下载 相关 举报
对Java编程中的文件操作详解.docx_第1页
第1页 / 共9页
对Java编程中的文件操作详解.docx_第2页
第2页 / 共9页
对Java编程中的文件操作详解.docx_第3页
第3页 / 共9页
对Java编程中的文件操作详解.docx_第4页
第4页 / 共9页
对Java编程中的文件操作详解.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

对Java编程中的文件操作详解.docx

《对Java编程中的文件操作详解.docx》由会员分享,可在线阅读,更多相关《对Java编程中的文件操作详解.docx(9页珍藏版)》请在冰豆网上搜索。

对Java编程中的文件操作详解.docx

对Java编程中的文件操作详解

对Java编程中的文件操作详解

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

  /***//**获得控制台用户输入的信息

  以下是代码片段:

  *@return

  *@throwsIOException

  */

  publicStringgetInputMessage()throwsIOException...{

  System.out.println("请输入您的命令∶");

  bytebuffer[]=newbyte[1024];

  intcount=System.in.read(buffer);

  char[]ch=newchar[count-2];//最后两位为结束符,删去不要

  for(inti=0;ich[i]=(char)buffer[i];

  Stringstr=newString(ch);

  returnstr;

  }

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

  二.复制文件

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

  /***//**以文件流的方式复制文件

  以下是代码片段:

  *@paramsrc文件源目录

  *@paramdest文件目的目录

  *@throwsIOException

  */

  publicvoidcopyFile(Stringsrc,Stringdest)throwsIOException...{

  FileInputStreamin=newFileInputStream(src);

  Filefile=newFile(dest);

  if(!

file.exists())

  file.createNewFile();

  FileOutputStreamout=newFileOutputStream(file);

  intc;

  bytebuffer[]=newbyte[1024];

  while((c=in.read(buffer))!

=-1)...{

  for(inti=0;iout.write(buffer[i]);

  }

  in.close();

  out.close();

  }

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

  三.写文件

  1.利用PrintStream写文件

  以下是代码片段:

  /***//**

  *文件输出示例

  */

  publicvoidPrintStreamDemo()...{

  try...{

  FileOutputStreamout=newFileOutputStream("D:

/test.txt");

  PrintStreamp=newPrintStream(out);

  for(inti=0;i<10;i++)

  p.println("Thisis"+i+"line");

  }catch(FileNotFoundExceptione)...{

  e.printStackTrace();

  }

  }

  2.利用StringBuffer写文件

  以下是代码片段:

  publicvoidStringBufferDemo()throwsIOException......{

  Filefile=newFile("/root/sms.log");

  if(!

file.exists())

  file.createNewFile();

  FileOutputStreamout=newFileOutputStream(file,true);

  for(inti=0;i<10000;i++)......{

  StringBuffersb=newStringBuffer();

  sb.append("这是第"+i+"行:

前面介绍的各种方法都不关用,为什么总是奇怪的问题");

  out.write(sb.toString().getBytes("utf-8"));

  }

  out.close();

  }

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

  四.文件重命名

  以下是代码片段:

  /***//**文件重命名

  *@parampath文件目录

  *@paramoldname原来的文件名

  *@paramnewname新文件名

  */

  publicvoidrenameFile(Stringpath,Stringoldname,Stringnewname)...{

  if(!

oldname.equals(newname))...{//新的文件名和以前文件名不同时,才有必要进行重命名

  Fileoldfile=newFile(path+"/"+oldname);

  Filenewfile=newFile(path+"/"+newname);

  if(newfile.exists())//若在该目录下已经有一个文件和新文件名相同,则不允许重命名

  System.out.println(newname+"已经存在!

");

  else...{

  oldfile.renameTo(newfile);

  }

  }

  五.转移文件目录

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

  /***//**转移文件目录

  以下是代码片段:

  *@paramfilename文件名

  *@paramoldpath旧目录

  *@paramnewpath新目录

  *@paramcover若新目录下存在和转移文件具有相同文件名的文件时,

  是否覆盖新目录下文件,cover=true将会覆盖原文件,否则不操作

  */

  publicvoidchangeDirectory(

  Stringfilename,Stringoldpath,Stringnewpath,booleancover)...{

  if(!

oldpath.equals(newpath))...{

  Fileoldfile=newFile(oldpath+"/"+filename);

  Filenewfile=newFile(newpath+"/"+filename);

  if(newfile.exists())...{//若在待转移目录下,已经存在待转移文件

  if(cover)//覆盖

  oldfile.renameTo(newfile);

  else

  System.out.println("在新目录下已经存在:

"+filename);

  }

  else...{

  oldfile.renameTo(newfile);

  }

  }

  六.读文件

  1.利用FileInputStream读取文件

  以下是代码片段:

  /***//**读文件

  *@parampath

  *@return

  *@throwsIOException

  */

  publicStringFileInputStreamDemo(Stringpath)throwsIOException...{

  Filefile=newFile(path);

  if(!

file.exists()||file.isDirectory())

  thrownewFileNotFoundException();

  FileInputStreamfis=newFileInputStream(file);

  byte[]buf=newbyte[1024];

  StringBuffersb=newStringBuffer();

  while((fis.read(buf))!

=-1)...{

  sb.append(newString(buf));

  buf=newbyte[1024];//重新生成,避免和上次读取的数据重复

  }

  returnsb.toString();

  }

  2.利用BufferedReader读取

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

  以下是代码片段:

  /***//**读文件

  *@parampath

  *@return

  *@throwsIOException

  */

  publicStringBufferedReaderDemo(Stringpath)throwsIOException...{

  Filefile=newFile(path);

  if(!

file.exists()||file.isDirectory())

  thrownewFileNotFoundException();

  BufferedReaderbr=newBufferedReader(newFileReader(file));

  Stringtemp=null;

  StringBuffersb=newStringBuffer();

  temp=br.readLine();

  while(temp!

=null)...{

  sb.append(temp+"");

  temp=br.readLine();

  }

  returnsb.toString();

  }

  3.利用dom4j读取xml文件

  以下是代码片段:

  /***//**从目录中读取xml文件

  *@parampath文件目录

  *@return

  *@throwsDocumentException

  *@throwsIOException

  */

  publicDocumentreadXml(Stringpath)throwsDocumentException,IOException...{

  Filefile=newFile(path);

  BufferedReaderbufferedreader=newBufferedReader(newFileReader(file));

  SAXReadersaxreader=newSAXReader();

  Documentdocument=(Document)saxreader.read(bufferedreader);

  bufferedreader.close();

  returndocument;

  }

  七.创建文件(文件夹)

  1.创建文件夹/***//**创建文件夹

  以下是代码片段:

  *@parampath目录

  */

  publicvoidcreateDir(Stringpath)...{

  Filedir=newFile(path);

  if(!

dir.exists())

  dir.mkdir();

  }

  2.创建新文件/***//**创建新文件

  以下是代码片段:

  *@parampath目录

  *@paramfilename文件名

  *@throwsIOException

  */

  publicvoidcreateFile(Stringpath,Stringfilename)throwsIOException...{

  Filefile=newFile(path+"/"+filename);

  if(!

file.exists())

  file.createNewFile();

  }

  八.删除文件(目录)

  1.删除文件

  以下是代码片段:

  /**删除文件

  *@parampath目录

  *@paramfilename文件名

  */

  publicvoiddelFile(Stringpath,Stringfilename)...{

  Filefile=newFile(path+"/"+filename);

  if(file.exists()&&file.isFile())

  file.delete();

  }

  2.删除目录

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

  以下是代码片段:

  /**递归删除文件夹

  *@parampath

  */

  publicvoiddelDir(Stringpath)...{

  Filedir=newFile(path);

  if(dir.exists())...{

  File[]tmp=dir.listFiles();

  for(inti=0;iif(tmp[i].isDirectory())...{

  delDir(path+"/"+tmp[i].getName());

  }

  else...{

  tmp[i].delete();

  }

  }

  dir.delete();

  }

  }

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1