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

  //可以返回用户输入的信息,不足之处在于不支持中文输入,有待进一步改进
  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;
}

 

二.复制文件

以文件流的方式复制文件

   
  //支持中文处理,并且可以复制多种类型,比如txt,xml,jpg,doc等多种格式
  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();
}

 三.写文件

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();
}

四.读文件

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;
}

五.文件重命名

  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.创建文件夹  

  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();
}
}

[Java] java文件读写操作大全的更多相关文章

  1. Java的文件读写操作

    file(内存)----输入流---->[程序]----输出流---->file(内存) 当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStr ...

  2. Java的文件读写操作 <转>

    目录: file内存----输入流----程序----输出流----file内存 java中多种方式读文件 判断文件是否存在不存在创建文件 判断文件夹是否存在不存在创建文件夹 java 写文件的三种方 ...

  3. [转]Java的文件读写操作

    file(内存)----输入流---->[程序]----输出流---->file(内存) 当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStr ...

  4. java大文件读写操作,java nio 之MappedByteBuffer,高效文件/内存映射

    java处理大文件,一般用BufferedReader,BufferedInputStream这类带缓冲的Io类,不过如果文件超大的话,更快的方式是采用MappedByteBuffer. Mapped ...

  5. java 实现文件读写操作

    import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /* JAVA IO 读写操作 20 ...

  6. java文件读写操作大全

    转自:http://hi.baidu.com/0_net/blog/item/8566fc2bb730c293033bf63e.html一.获得控制台用户输入的信息 public String get ...

  7. java写文件读写操作(IO流,字节流)

    package copyfile; import java.io.*; public class copy { public static void main(String[] args) throw ...

  8. java写文件读写操作(IO流,字符流)

    package copyfile; import java.io.*; public class copy { public static void main(String[] args) throw ...

  9. java io 文件读写操作

    写: import java.io.*; String filePath= "F:\\test.txt"; FileWriter fwriter = null; fwriter = ...

随机推荐

  1. KDTree

    学习链接:http://www.cnblogs.com/eyeszjwang/articles/2429382.html 下面实现的kdtree支持以下操作:(1) 插入一个节点(2) 插入n个节点( ...

  2. Cheatsheet: 2014 06.01 ~ 06.30

    Mobile Developing iOS8 Apps Using Swift – Part 1- Hello World The Insider's Guide to Android Intervi ...

  3. [HDOJ2717]Catch That Cow

    Catch That Cow Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  4. [SAP ABAP开发技术总结]逻辑数据库

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  5. poj 3335(半平面交)

    链接:http://poj.org/problem?id=3335     //大牛们常说的测模板题 ------------------------------------------------- ...

  6. 【CC评网】2013.第41周 不求排版,简单就好

    书单 碰上国庆,加上这周,消化掉几本书: <软件随想录>:Joel的随想录,也就是他Blog上的文章的摘选:整本书看下来轻松:写了篇读书笔记[传送门]: <中国在梁庄>:这本书 ...

  7. hdu 1116 Play on Words 欧拉路径+并查集

    Play on Words Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  8. CSS笔记(五)字体

    CSS 字体属性定义文本的字体系列.大小.加粗.风格(如斜体)和变形(如小型大写字母). 参考:http://www.w3school.com.cn/css/css_font.asp CSS字体系列 ...

  9. pfx,cer转pem,并对通过pem文件进行签名与验签

    因为PHP无法读取.pfx文件,所以可以先转换为.pem文件然后在读取里面的数据,可以读取.cer文件,为了两方面统一,就都换成.pem然后再进行加签和验签. sign.php <?php de ...

  10. iOS - CoreMotion

    前言 NS_CLASS_AVAILABLE(NA,4_0) @interface CMMotionManager : NSObject @available(iOS 4.0, *) public cl ...