程序再运行期间,可能需要从外部的存储媒介或其他程序中读入所需要的数据,这就需要使用输入流。

程序可能经常需要获取磁盘上文件的有关信息或在磁盘上创建新的文件等,这就需要学习使用File类。

创建一个File对象的构造方法有三个:

File (String filename);

File (String directoryPath, String filename);

File (File dir, String filename);

使用File(String filename)创建文件时,该文件被认为与当前应用程序在同一目录中。

文件的属性

经常使用File类的下列方法获取文件本身的一些信息。

public String getName() 获取文件的名字

public boolean canRead() 判断文件是否是可读的

public boolean canWrite() 判断文件是否可被写入

public boolean exits() 判断文件是否存在

public long length() 获取文件的长度

public String getAbsolutePath() 获取文件的绝对路径

File类对象的方法使用情况如下所示:

import java.io.File;
import java.io.IOException; public class Test01 { public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("E:/test", "Test02.java");
System.out.println(file.getName() + "是可读的吗:" + file.canRead());
System.out.println(file.getName() + "的长度:" + file.length());
System.out.println(file.getName() + "的绝对路径是:" + file.getAbsolutePath());
System.out.println();
File file1 = new File("new.txt");
System.out.println("在当前目录下创建新文件" + file1.getName());
if(!file1.exists())
{
try{
file1.createNewFile();
System.out.println("创建成功");
}
catch(IOException exp)
{ }
}
} }

运行结果如下所示:

在写路径的时候,可以写出"E:\test"或者“E://test”,千万不可以写出"E:/test"。

目录

 1.创建目录

File对象调用方法public boolean mkdir()创建一个目录,如果创建成功返回true,否则返回flase(如果该目录已经存在将返回false)。

 2.列出目录中的文件

如果File对象是一个目录,那么该对象调用下列方法列出该目录的文件和子目录。

public String[] list() 用字符串形式返回目录下的全部文件。

public File[] listFiles() 用File对象形式返回目录下的全部文件

有时需要列出目录下指定类型的文件,比如.java文件

public String[] list(FilenameFilter obj) 该方法用字符串形式返回目录下的指定类型的所有文件。

public File[] listFiles(FilenameFilter obj) 该方法用File对象形式返回目录下的指定类型的所有文件。

上述两个方法的参数FilenameFilter是一个接口,该接口由一个方法:

public boolean accept(File dir, String name);

代码展示如下所示:

import java.io.File;

public class Test02 {

    public static void main(String[] args) {
// TODO Auto-generated method stub
File dirFile = new File(".");
FileAccept fileAccept = new FileAccept();
fileAccept.setExtendName("java");
String fileName[] = dirFile.list(fileAccept);
for(String name : fileName)
{
System.out.println(name);
}
} }
import java.io.File;
import java.io.FilenameFilter; public class FileAccept implements FilenameFilter{
private String extendName;
public void setExtendName(String s)
{
extendName = "." + s;
}
public boolean accept(File dir, String name)//重写接口中的方法
{
return name.endsWith(extendName);
} }

review22的更多相关文章

随机推荐

  1. delphi 中配置文件的使用(*.ini)和TIniFile 用法

    一.配置文件 .ini 文件是基于文本类型的格式文件,用于存储程序初始化和配置数据. .ini文件是有段(Sections)和键(key)组成的,每个文件可以有 n个段(每个段有方括号括起来),每个段 ...

  2. Docker selinux

    编辑/etc/sysconfig/docker文件,把OPTIONS='--selinux-enabled'的--selinux-enabled注释掉,也可以通过这个错误. 最大的问题就是Linux的 ...

  3. Facebook背后的软件

    Facebook的数据规模使得很多传统的解决方案根本不适用,或者无法分解来处理.保持一个拥有5亿用户的系统一直稳定可靠的运行,并不是一件很容易的事情.这篇文章介绍了一下Facebook使用的软件. F ...

  4. Python2 和 Python3 区别汇总

    [Python2 和 Python3 的区别汇总,不定期补充] print 在进行程序调试时用得最多的语句可能就是 print,在 Python 2 中,print 是一条语句,而 Python3 中 ...

  5. python面试题(四)

    1 常用字符串格式化哪几种? 最方便的 print('hello %s and %s' % ('df', 'another df')) 复制代码 但是,有时候,我们有很多的参数要进行格式化,这个时候, ...

  6. 0608pm单例模式and面向对象的六大原则

    //把类控制住,不让外界造她的对象class DA{ public $name; static private $dx;//存放对象的变量 //将构造变为私有,外界没法造对象 private func ...

  7. 函数的调用规则(__cdecl,__stdcall,__fastcall,__pascal)

    关于函数的调用规则(调用约定),大多数时候是不需要了解的,但是如果需要跨语言的编程,比如VC写的dll要delphi调用,则需要了解. microsoft的vc默认的是__cdecl方式,而windo ...

  8. 计算机网络概述 传输层 TCP拥塞控制

    TCP拥塞控制 计算机网络中的带宽.交换结点中的缓存和处理机等,都是网络的资源.在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏.这种情况就叫做拥塞. 拥塞控制就 ...

  9. 【Head First Servlets and JSP】笔记7:如何创建一个全局的dog?

    重定向与请求分派 “局部”参数——ServletConfig——servlet初始化参数 “全局”参数——ServletContext——上下文初始化参数 Web app的“构造器”——Servlet ...

  10. shell的符号总结

    1.命令替换符:先执行符号内的命令 反引号``:旧格式 $():新格式 2.字符串界定符: 单引号:保持引号内 的字符的字面值. 双引号:有些情况特殊. $echo '`date`' #不会执行`da ...