`
gstarwd
  • 浏览: 1486835 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java文件操作总结

阅读更多
标题:Java文件操作总结(一)

内容:
由于一直在使用Java file功能,但是总是很混乱,今天将Java File的所有功能做一个总结。

Java文件操作我个人认为重要的问题有:

  a:如何跨平台问题
  b:文件编码问题,尤其是多语言平台情况下如何正常工作。
  c:文件读写效率、操作效率
  d:文件加密和文件安全
  e:文件快速检索,强烈建议使用lence进行文件检索及文件管理。

以下是本人做的一些整理:

一:建立文件

  File file1 = new File ("C:\\temp\\myNote.txt"); // in Windows 这是windows文件系统下的方法
  File file2 = new File ("/tmp/myNote.txt"); // in Linux/Unix    unix文件系统的方法

最安全的建立文件的方法:

  File myFile = new File("C:" + File.separator + "jdk1.5.0" + File.separator, "File.java");

  File.separator 是文件路径符号。
  System.out.println(myFile.getName());//取得文件名称的方法
  System.out.println(myFile.getPath());//取得文件路径的方法
  System.out.println(myFile.isAbsolute());//判断文件是否完整
  System.out.println(myFile.getParent());//取得文件的根目录
  System.out.println(myFile.exists());//判断文件是否存在
  System.out.println(myFile.isDirectory());//判断是否是目录
  System.out.println(myFile.isFile());//判断是否是文件
  System.out.println(myFile.isHidden());//判断是否是隐藏文件
  System.out.println(myFile.canRead());//判断是否可读
  System.out.println(myFile.canWrite());//判断是否可写

  File myFile_A = new File("C:" + File.separator);
    for(String s: myFile_A.list()){//读取某个目录下所有文件
    System.out.println(s);
    }

   File myFile_C=new File("d:/test.txt");
      System.out.println(new Date(myFile_C.lastModified()));//最后一次编辑时间
    myFile_C.renameTo(new File("c:/text.txt.bak"));//从命名
    myFile_C.setReadOnly();//设置为只读
二:文件过滤方法

  java提供了很好的文件过滤借口:FilenameFilter 过滤以后的文件可以用listFiles显示出来。效率还是非常高的。

import java.io.File;
import java.io.FilenameFilter;
import java.util.Date;
/**
 * 文件过滤器过滤类
 * @author fb
 */
class FileListFilter implements FilenameFilter {
 private String name;
 private String extension;
 public FileListFilter(String name, String extension) {
  this.name = name;
  this.extension = extension;
 }
 public boolean accept(File directory, String filename) {
  boolean fileOK = true;
  if (name != null) {
   fileOK = filename.startsWith(name);
  }
  if (extension != null) {
   fileOK = filename.endsWith('.' + extension);
  }
  return fileOK;
 }
}
测试方法:

import java.io.File;
import java.io.FilenameFilter;
import java.util.Date;
/**
 * 文件过滤器  运行函数
 * @author fb
 */
public class Run_FileListFilter {
 public static void main(String[] args) {
   File myDir = new File("d:/");
   FilenameFilter select = new FileListFilter("F", "txt");
   File[] contents = myDir.listFiles(select);
   for (File file : contents) {
    System.out.println(file + " is a " + (file.isDirectory() ? "directory" : "file")
      + " last modified on\n" + new Date(file.lastModified()));
   }
 }
}
三:建立目录、文件、临时文件、删除文件或目录
import java.io.File;
import java.io.IOException;

public class MakeDir {
 
 public static void main(String[] args) {
  File myFile=new File("D:/myFubin/");
  if(myFile.mkdir()){//单级目录
   System.out.println("建立目录成功");
  }else{
   System.out.println("建立目录失败");
  }
 
  File myFile_A=new File("D:/myFubin/test/");
  if(myFile_A.mkdirs()){//多级目录
   System.out.println("建立目录成功");
  }else{
   System.out.println("建立目录失败");
  }
 
  File file = new File("d:\\myFubin\\test.txt");
  try {
   file.createNewFile();//建立空文件
  } catch (IOException e) {
   e.printStackTrace();
  }
 
  System.out.println(file.canRead());
 
  if(file.delete()){//删除文件或删除目录
   //删除文件的另外一个方法:file.deleteOnExit() 这种方法是在程序退出的时候将文件删除
   System.out.println("删除成功");
  }else{
   System.out.println("删除失败");
  }
 
  try {
   File tmp = File.createTempFile("foo", "tmp");//建立临时文件
   System.out.println("刚才建立的临时文件在:" + tmp.getCanonicalPath());
  } catch (IOException e) {
   e.printStackTrace();
  }
 
 
 }
 
}

 

标题:Java文件操作总结(二)

import java.io.File;
/**
 * 文件操作里Java 1.6 新功能:查询磁盘空间
 */
public class SpaceChecker {

public static void main(String[] args) {
File[] roots = File.listRoots();//取得所有的根,如果是windows系统那么将取得所有的磁盘
  for (int i = 0; i < roots.length; i++) {
   System.out.println(roots[i]);
   System.out.println("Free space = " + roots[i].getFreeSpace());
   System.out.println("Usable space = " + roots[i].getUsableSpace());
   System.out.println("Total space = " + roots[i].getTotalSpace());
   System.out.println();
  }
}
}

 

标题:Java文件操作总结(三)

内容:
使用Stream读文件


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class InPut {
 public static void main(String[] args) {
  File myFile=new File("d:/text.txt");
    try {
   FileInputStream aFileInputStream=new FileInputStream(myFile);
    //System.out.print(aFileInputStream.read());//  
    byte[] buffer = new byte[1024];//设置一次读取的数量
    while (true) {
     int bytesRead = aFileInputStream.read(buffer);
     System.out.println(bytesRead);
     if (bytesRead == -1)//当其为表示已经读完,那么停止循环表示一次读入完成
      break;
     System.out.println(bytesRead);
     System.out.write(buffer, 0, bytesRead);
    }
    } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}


使用Stream写文件

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class OutPut_A {

public static void main(String[] args) {
File myFile=new File("d:/Test2.txt");
try {
FileOutputStream aVar=new FileOutputStream(myFile);
byte[] aDate={65,66,67,68,69,70,71};//向文件写入:ABCDEFG
aVar.write(aDate);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}


将文件的内容写入另外一个文件

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class OutPut {

 public static void main(String[] args) {
  File myFile=new File("d:/text.txt");
  File myFile_A=new File("d:/test1.txt");
    try {
   FileInputStream aFileInputStream=new FileInputStream(myFile);
   FileOutputStream aFileOutputStream=new FileOutputStream(myFile_A);
    byte[] my_Date=new byte[1024];
    int i=aFileInputStream.read(my_Date);
    while(i!=-1){
     aFileOutputStream.write(my_Date,0,i);
     i=aFileInputStream.read(my_Date);
    }
    aFileInputStream.close();
    aFileOutputStream.close();
    } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

}
 
分享到:
评论

相关推荐

    java文件操作总结

    java文件操作总结  详细介绍 java对文件的操作  每个都有对应的例子

    java文件读写操作

    java学习笔记,新手入门,java文件读写的一些例子!

    Java文件操作方法总结

    Java文件操作中的一些常用方法的总结,可以参考参考啦!

    Java中File类对文件的几个常见操作实例总结

    Java中File类对文件的几个常见操作实例总结

    java IO流总结.md

    java I/O流的总结 1.操作数据单位:字节流、字符流 对于文本文件(.txt,.java,.c,.cpp),使用字符流处理 对于非文本文件(.jpg,.mp3,.mp4,.avi,.doc,.ppt,...),使用字节流处理 2.数据的流向:输入流、输出流 ...

    java文件读写

    java文件读写,这是本人总结的java读写文件的一下操作 java文件读写,这是本人总结的java读写文件的一下操作 java文件读写,这是本人总结的java读写文件的一下操作

    操作系统课程设计报告二级文件系统java参考.pdf

    操作系统课程设计报告二级文件系统java参考.pdf

    java 复制文件 io流操作

    完整的文件io 流操作,有四个函数, Writer read inputStream outputStream自己总结的东东,让大家用用,不图得分,

    Java 基础核心总结 +经典算法大全.rar

    BIO 和 NIO 拷贝文件的区别操作系统的零拷贝 选择器(Selectors) 选择键(SelectionKey) 示例:简易的客户端服务器通信 集合 集合框架总览 -、Iterator Iterable ListIterator 二、Map 和 Collection 接口Map 集合体系...

    java基础总结大全

    java基础大全相信大家会用到的、JVM、JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。 java语言是跨平台,jvm不是跨平台的。 JRE(Java Runtime Environment):java的运行...

    Java上传下载文件操作用到的jar

    开发中经常用的对文件的操作,文件上传下载是java开发中经常做的事情,为此,我总结了我们项目总要到的jar包,方便以后下载使用。

    java中的IO操作总结(一)

    java中的IO操作总结(一) 所谓IO,也就是Input与Output的缩写。在java中,IO涉及的范围比较大,这里主要讨论针对文件内容的读写 其他知识点将放置后续章节(我想,文章太长了,谁都没耐心翻到最后) 对于文件内容...

    java 面试题 总结

    JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变...

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

    开发过程中经常会遇到json数据的处理,而单独对json数据进行增删改并不方便,尤其是Geojson文件的处理,通过对网络资料的整理总结,下面介绍Java语言方法对json数据进行读取、添加、删除与修改操作。

    java中的IO操作总结(四)

    java中的IO操作总结(四) 前面已经把java io的主要操作讲完了 这一节我们来说说关于java io的其他内容 Serializable序列化 实例1:对象的序列化 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23...

    使用Java创建文件同步工具 - 一个实战教程

    在这个实战博客中,我们将创建一个Java文件同步工具,演示如何使用Java编程语言和文件操作来实现文件和文件夹的同步功能。 以下是本实战博客的主要内容: 项目概述 准备工作 创建Java项目 设计文件同步逻辑 实现...

    Java最全文件操作实例汇总

    主要介绍了Java最全文件操作,总结分析了大量实例,详细汇总了Java针对文件的各种常用操作,需要的朋友可以参考下

    字节大佬总结的Java面试资料

    字节大佬总结的Java面试资料 JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接 的交互。 ...

    Java基础入门教程 第9章 Java的高级特性(共32页).ppt

    【完整课程列表】 ... Java基础入门教程 第1章 Java 简介...Java基础入门教程 第8章 文件流的输入输出操作(共37页).ppt Java基础入门教程 第9章 Java的高级特性(共32页).ppt jdk api 1.7.chm JDK_API_1_6_zh_CN.CHM

Global site tag (gtag.js) - Google Analytics