File 操作

<介绍>

尽管java.io定义的大多数类是实行流式操作的,File类不是。它直接处理文件和文件系统。也就是说,File类没有指定信息怎样从文件读取或向文件存储;它描述了文件本身的属性。File对象用来获取或处理与磁盘文件相关的信息,例如权限,时间,日期和目录路径。此外,File还浏览子目录层次结构。很多程序中文件是数据的根源和目标。尽管它们在小应用程序中因为安全原因而受到严格限制,文件仍是存储固定和共享信息的主要资源。Java中的目录当成File 对待,它具有附加的属性——一个可以被 list( )方法检测的文件名列表。

package com.io;

import java.io.File;
import java.io.IOException; public class Que1 {
/*
* requirement: File
* File 类的实例是不可变的;
* 也就是说,一旦创建,File 对象表示的抽象路径名将永不改变。
*构造方法:File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
*/
// 创建方法
// 1.boolean createNewFile() 不存在返回true 存在返回false
// 2.boolean mkdir() 创建目录
// 3.boolean mkdirs() 创建多级目录
//
// 删除方法
// 1.boolean delete()
// 2.boolean deleteOnExit() 文件使用完成后删除 public static void main(String[] args) {
File myfile = new File("D:\\test/myword.txt");//创建实例
//多大:
System.out.println(myfile.length());
File myfile2 = new File("D:\\Program Files");
File files[] = myfile2.listFiles(new MyfileNameFiler(".txt"));//过滤器
//获取该目录文件
for (File f:files){
System.out.println(f.getAbsolutePath()+"文件名:"+f.getName()); }
//判断这个file究竟存不存在??
System.out.println(myfile.exists());//返回boolean
//他是文件还是文件夹呢??
System.out.println(myfile.isFile());//是file
System.out.println(myfile.isDirectory());//false
System.out.println(myfile2.isDirectory());
//绝对路径?
System.out.println(myfile.getAbsolutePath());
System.out.println(myfile.getName());
//删除成功就是true
System.out.println(myfile.delete());
System.out.println("创建文件");
try {
System.out.println(myfile.createNewFile());
//当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
//检查文件是否存在,若不存在则创建该文件,
//这是单个操作,对于其他所有可能影响该文件的文件系统活动来说,该操作是不可分的。
} catch (IOException e) {
e.printStackTrace();
} } }

这个是FilenameFilter筛选对应的文件格式

package com.io;

import java.io.File;
import java.io.FilenameFilter; public class MyfileNameFiler implements FilenameFilter {
String endsWith;
public MyfileNameFiler(String endsWith) {
this.endsWith = endsWith;
} @Override
public boolean accept(File dir, String name) {
return name.endsWith(endsWith);//取非的时候,不是以这个结尾的将会选择出来
} }

重点内容

File 还包括两个有用的实用工具方法。第一个是renameTo( ),显示如下:

(1)boolean renameTo(File newName)

这里,由newName指定的文件名变成了所调用的File 对象的新的名称。如果更名成功则返回ture,文件不能被重命名(例如,你试图重命名文件以使它从一个目录转到另一个目录,或者你使用了一个已经存在的文件名),则返回false。

(2)第二个实用工具方法是delete( )

该方法删除由被调用的File对象的路径指定的磁盘文件。它的形式如下:

boolean delete( )

同样可以在目录为空时用delete( )删除目录。如果删除了文件,delete( )返回true,如果文件不能被删除则返回false。Java 2 为File 类增添了一些新的方法,你会发现在某些场合这些新增方法很有用。

一些最有趣的方法显示如下:

方法 描述

void deleteOnExit( ) 在java虚拟机终止时删除与调用对象相关的文件

boolean isHidden( ) 如果调用的文件是隐藏的,返回true;否则返回 false。

boolean setLastModified(long millisec) 设置由millisec指定的调用文件的时间标志,Millisec是从1970年1月1号开始的标准时间(UTC)的毫秒数

boolean setReadOnly( ) 设置调用文件为只读

并且,因为File 类现在支持Comparable 接口,compareTo( )方法也被支持。

版权声明:本文为博主原创文章,未经博主允许不得转载。

File 类 操作实例的更多相关文章

  1. 使用File类操作文件或目录的属性

    在学I/O流之前,我先总结一下使用File类操作文件或目录的属性. package com.File; import java.io.File; import java.io.IOException; ...

  2. PDF.NET数据开发框架实体类操作实例

    PDF.NET数据开发框架实体类操作实例(MySQL)的姊妹篇,两者使用了同一个测试程序,不同的只是使用的类库和数据库不同,下面说说具体的使用过程. 1,首先在App.config文件中配置数据库连接 ...

  3. java.io.File类操作

    一.java.io.File类 String path="E:/222/aaa";//路径 String path1="aaa.txt"; File file= ...

  4. 第8章 File I/O,File类操作文件的属性

    1.文件 1.1.什么是文件? 答:文件可认为是相关记录或放在一起的数据的集合 1.2.文件- -般存储在哪里? 答: 磁盘,硬盘,文件夹 1.3.JAVA程序如何访向文件属性? JAVA API:i ...

  5. File类操作文件

    简单示例: public static void main(String[] args) { // 列出系统所有的根路径 File[] listRoots = File.listRoots(); fo ...

  6. 文件操作(File类等)API摘要

    Console 此类包含多个方法,可访问与当前 Java 虚拟机关联的基于字符的控制台设备(如果有). 虚拟机是否具有控制台取决于底层平台,还取决于调用虚拟机的方式.如果虚拟机从一个交互式命令行开始启 ...

  7. 【C# IO 操作】 Path 路径类 |Directory类 |DirectoryInfo 类|DriveInfo类|File类|FileInfo类|FileStream类

    Directory类 Directory类 是一个静态类,常用的地方为创建目录和目录管理. 一下来看看它提供的操作. 1.CreateDirectory 根据指定路径创建目录.有重载,允许一次过创建多 ...

  8. JAVA实现File类中的遍历操作并输出内容

    package shb.java.testIo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.i ...

  9. Java IO编程——File文件操作类

    在Java语言里面提供有对于文件操作系统操作的支持,而这个支持就在java.io.File类中进行了定义,也就是说在整个java.io包里面,File类是唯一 一个与文件本身操作(创建.删除.重命名等 ...

随机推荐

  1. python 数据结构中被忽视的小技巧

    一.一个包含N个元素的字符串.元组.序列.以及任何可迭代对象均可以拆分成N个单独的“变量” 1.字符串的拆分 #字符串 In [10]: s="abdefg" In [11]: o ...

  2. redis于spring整合之RedisTemplate

    原文地址: http://www.jianshu.com/p/7bf5dc61ca06

  3. ncl 实例参考

    NCL中绘制中国任意省份的精确地图 NCL学习笔记(实战篇) 用NCL画垂直风场剖面图实例 NCL学习笔记(天气分析图)

  4. composer 更新国内镜像地址

    composer config -g repo.packagist composer https://packagist.phpcomposer.com​

  5. 剑指offer——求1+2+...+n

    方法一.通过在类的构造函数中执行加的过程. #include <iostream> using namespace std; class Base { public: Base(){n++ ...

  6. SpringCloud之Eureka高可用集群环境搭建

    注册中心集群 在微服务中,注册中心非常核心,可以实现服务治理,如果一旦注册出现故障的时候,可能会导致整个微服务无法访问,在这时候就需要对注册中心实现高可用集群模式. Eureka集群相当简单:相互注册 ...

  7. java:maven中webapp下的jsp不能访问web-inf下面的bean

    java:maven中webapp下的jsp不能访问web-inf下面的bean 当然 WEB-INF下面的文件是不能访问的,只能吧jsp文件放入到WEB-INF下面,然后通过配置WEB-INF下we ...

  8. 解决Eclipse和myeclipse在进行 html,jsp等 页面编辑时,自动格式化变丑的问题

    在eclipse和myelipse写JAVA代码时中使用ctrl+shift+f 快捷键自动排版省时又省力,排版后的代码规范美观又层次性,但在我们写jsp或html代码时,使用这个快捷键排版简直奇丑无 ...

  9. LSM Tree 学习笔记——MemTable通常用 SkipList 来实现

    最近发现很多数据库都使用了 LSM Tree 的存储模型,包括 LevelDB,HBase,Google BigTable,Cassandra,InfluxDB 等.之前还没有留意这么设计的原因,最近 ...

  10. java - BigDecimal的format()方法和setScale()方法格式字符串

    1.BigDecimal.setScale()方法用于格式化小数点 setScale(1)表示保留一位小数,默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOWN)直接删 ...