Java的IO操作---File类
目标
1)掌握File类作用
2)可以使用file类中方法对文件进行读写操作。
File类
唯一与文件有关的类。使用file类可进行创建或删除操作,要想使用File类,首先观察File类的构造方法。
public File(String pathname);实例化File类的时候,必须设置好路径。

常量::
public staitc final String pathSeparator;
明明使用了static final定义的常量,这里为什么使用了小写方式。实际上这属于JAVA的历史遗留问题。
实例操作一:创建一个新文件。
创建文件:
public boolean creatNewFile() throws IOExcetion
用以上方法就可以创建文件,但是注意要有异常处理。
在D盘创建一个文件:
import java.io.File ;
import java.io.IOException ;
public class FileDemo01{
public static void main(String args[]){
File f = new File("d:\\test.txt") ; // 实例化File类的对象,给出路径
try{
f.createNewFile() ; // 创建文件,根据给定的路径创建
}catch(IOException e){
e.printStackTrace() ; // 输出异常信息
}
}
};
运行结果:

步骤:首先创建File对象,创建对象的时候要给出文件路径,然后用这个对象调用creatNewFile()方法,注意调用方法时候要有异常处理。
以上完成了文件创建功能,但是开发中以上程序编写肯定会出现错误,在各个操作系统中,路径分隔符是不一样的。例如:
windows使用反斜杠:"\"
Linux中使用正斜杠:"/"
要想让JAVA可移植增强,最好让操作系统自动使用分隔符。
package Thread1; import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[])
{
System.out.println("pathSeparator:" + File.pathSeparator) ; // 调用静态常量
System.out.println("separator:" + File.separator) ; // 调用静态常量
}
}
运行结果:
pathSeparator:;
separator:\
要想保持可移植性,在编写的时候应该使用File类中的常量。修改之前程序。
package Thread1; import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[])
{
File f = new File("d:"+File.separator+"test.txt") ; // 实例化File类的对象
try{
f.createNewFile() ; // 创建文件,根据给定的路径创建
}catch(IOException e){
e.printStackTrace() ; // 输出异常信息
}
}
}
注意:在操作文件的时候一定要注意分隔符,使用File.separator表示。
删除一个指定的文件
删除文件方法:
public boolean delete();
将之前建立好的文件删除掉。
package Thread1;
import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[])
{
File f = new File("d:"+File.separator+"test.txt") ; // 实例化File类的对象
f.delete() ; // 删除文件
}
}
运行结果:
确实删除了文件。
此时文件确实删除了,但是删除之前最好进行判断文件是不是存在。
在File类中可以使用exists()方法判断一个文件是否存在。
public boolean exists();
使用以上代码增强之前程序。
package Thread1;
import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[])
{
File f = new File("d:"+File.separator+"test.txt") ; // 实例化File类的对象
if(f.exists()){ // 如果文件存在则删除
f.delete() ; // 删除文件
}
else
System.out.println("文件不存在");
}
}
运行结果:
文件不存在
由于之前已经删除了,所以这里文件不存在。
综合创建,删除文件的操作
要求:给定一个路径,如果文件存在删除,不存在,创建之。
import java.io.File ;
import java.io.IOException ;
public class FileDemo06{
public static void main(String args[]){
File f = new File("d:"+File.separator+"test.txt") ; // 实例化File类的对象
if(f.exists()){ // 如果文件存在则删除
f.delete() ; // 删除文件
}else{
try{
f.createNewFile() ; // 创建文件,根据给定的路径创建
}catch(IOException e){
e.printStackTrace() ; // 输出异常信息
}
}
}
};
提示:对于文件的后缀可有可无。
创建文件夹
使用mkdir()方法创建文件夹、
public boolean mkdir();
实例;
import java.io.File ;
import java.io.IOException ;
public class FileDemo07{
public static void main(String args[]){
File f = new File("d:"+File.separator+"mldn") ; // 实例化File类的对象
f.mkdir() ; // 创建文件夹
}
};
运行结果:创建成功一个名为mldn的文件夹。
列出指定目录的全部文件。
如果给出一个目录,可以列出目录中全部内容,但是列出的方法存在两个:
1,以字符串数组的形式返回。
public String [] list();
2,以File数组形式返回:
pulbic File [] listFiles();
操作一:list()方法:
package Thread1;
import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[])
{
File f = new File("d:"+File.separator) ; // 实例化File类的对象
String str[] = f.list() ; // 列出给定目录中的内容
for(int i=0;i<str.length;i++){
System.out.println(str[i]) ;
}
}
}
运行结果:
$RECYCLE.BIN
360SoftMove
BDSoftMgrData
Config.Msi
FDownload
MSOCache
Program Files
System Volume Information
TrainingPackage_dna
TrainingPackage_zcgl
办公软件
我的文档
搜狗高速下载
搞笑
文件清理.bat
编程软件
以上只是列出全部文件名字。
操作2,使用listFiles()方法列出。
package Thread1;
import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[])
{
File f = new File("d:"+File.separator) ; // 实例化File类的对象
File files[] = f.listFiles() ; // 列出全部内容,注意需要一个files对象数组接受这个返回数组。
for(int i=0;i<files.length;i++){
System.out.println(files[i]) ;
}
}
}
运行结果:
d:\$RECYCLE.BIN
d:\360SoftMove
d:\BDSoftMgrData
d:\Config.Msi
d:\FDownload
d:\GSP平台
d:\GS管理套件
d:\MSOCache
d:\Program Files
d:\System Volume Information
d:\TrainingPackage_dna
d:\TrainingPackage_zcgl
d:\久其培训
d:\办公软件
d:\我的文档
d:\搜狗高速下载
d:\搞笑
d:\文件清理.bat
d:\编程软件
d:\蓝桥杯试题
此时列出的是完整的路径。这样对于程序本身是很容易操作的。
判断一个给定的路径是否目录。
在File类中直接使用方法:public boolean isDirectory();
package Thread1;
import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[])
{
File f = new File("d:"+File.separator) ; // 实例化File类的对象
if(f.isDirectory()){ // 判断是否是目录
System.out.println(f.getPath() + "路径是目录。") ;
}else{
System.out.println(f.getPath() + "路径不是目录。") ;
}
}
}
运行结果:
d:\路径是目录。
列出指定目录的全部内容
如果给定一个目录,则讲目录的全部文件列出来,但是列的时候可能存在子文件夹,子文件夹也有子文件夹。

应该采用递归的形式。
package Thread1;
import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[]){
File my = new File("d:" + File.separator+"FDownload") ; // 操作路径
print(my) ;
}
public static void print(File file){ // 递归调用
if(file!=null){ // 判断对象是否为空
if(file.isDirectory()){ // 如果是目录
File f[] = file.listFiles() ; // 列出全部的文件
if(f!=null){ // 判断此目录能否列出
for(int i=0;i<f.length;i++){
print(f[i]) ; // 因为给的路径有可能是目录,所以,继续判断,继续递归。
}
}
}else{
System.out.println(file) ; // 输出路径
}
}
}
};
运行结果:
d:\FDownload\合并\0001.中国网络电视台-《诗词中国》 第一集 诗的起源[高清版].mp4
d:\FDownload\合并\0001.中国网络电视台-《诗词中国》 第七集 亲情诗[高清版].mp4
d:\FDownload\合并\0001.中国网络电视台-《诗词中国》 第三集 春江花月夜[高清版].mp4
d:\FDownload\合并\0001.中国网络电视台-《诗词中国》 第二集 枫桥夜泊[高清版].mp4
d:\FDownload\合并\0001.中国网络电视台-《诗词中国》 第五集 民歌[高清版].mp4
d:\FDownload\合并\0001.中国网络电视台-《诗词中国》 第六集 怀乡诗[高清版].mp4
d:\FDownload\合并\0001.中国网络电视台-《诗词中国》 第四集 黄鹤楼与鹳雀楼[高清版].mp4
这里用到了,判断路径是否为文件夹:isDirection()。列出文件夹下目录方法:listFiles()。还有递归。
Java的IO操作---File类的更多相关文章
- java之io之file类的常用操作
java io 中,file类是必须掌握的.它的常用api用法见实例. package com.westward.io; import java.io.File; import java.io.IOE ...
- Java基础---IO(二)--File类、Properties类、打印流、序列流(合并流)
第一讲 File类 一.概述 1.File类:文件和目录路径名的抽象表现形式 2.特点: 1)用来将文件或文件夹封装成对象 2)方便于对文件与文件夹的属性信息进行操作 3)File类的实例是不 ...
- java之io之File类的list()方法过滤目录的使用
java的io的知识中,File类必须掌握.File类是对文件或者文件夹的封装.它本身并不能对所封装的文件进行读写,它封装的只是文件或文件夹的周边知识,比如 大小啦,创建日期啦,路径啦等等. 如果Fi ...
- Java文件(io)编程——File类的基本用法
1.首先了解文件流的相关概念: 2.文件File类的基本用法 public class Demo_1 { public static void main(String[] args) { //创建一个 ...
- Java—IO流 File类的常用API
File类 1.只用于表示文件(目录)的信息(名称.大小等),不能用于文件内容的访问. package cn.test; import java.io.File; import java.io.IOE ...
- java io包File类
1.java io包File类, Java.io.File(File用于管理文件或目录: 所属套件:java.io)1)File对象,你只需在代码层次创建File对象,而不必关心计算机上真正是否存在对 ...
- java的IO操作:字节流与字符流操作
流的概念 程序中的输入输出都是以流形式,流中保存的实际上都是字节文件. 字节流与字符流 字节流的操作: 1)输入:inputStream, 2)输出:outPutStream; 字符流的操作: 1)输 ...
- 1.5 JAVA的IO操作
1.5 JAVA的IO操作 参考链接:https://www.runoob.com/java/java-files-io.html 一.JAVA的IO操作 由于JAVA引用外界的数据,或是将自身的数据 ...
- Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式
解析:Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式.面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和Out ...
随机推荐
- 请用fontAwesome代替网页icon小图标
1. 引言 网页小图标到处可见,如果一个网页都是干巴巴的文字和图片,而没有小图标,会显得非常简陋.下面的小图标,你是不是会经常用到? 你可能说——“我们用的都是彩色的,不是黑白的”——别着急,下面会讲 ...
- Sass学习之路(1)——Sass简介
Sass是CSS的一种预处理器语言,类似的语言还有Less,Stylus等. 那么什么是CSS预处理器? CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些 ...
- [ javascript New Image() ] New Image() 对象讲解
创建一个Image对象:var a=new Image(); 定义Image对象的src: a.src="xxx.gif"; 这样做就相当于给浏览器缓存了一张图片. 图 ...
- SQL语句的简单使用
首先要先引入libsqlite3.0.tbd框架 DataBaseHandle.h #import <Foundation/Foundation.h> @interface DataBas ...
- img 在层内 居中显示
div{width:250px;height:150px;background:#000;position:relative;} img{;;;;margin: auto;} <div>& ...
- iOS开发网络篇—网络编程基础(二)
下面叙述的是关于几个必须要知道的iOS网络编程入门级别的要点: 1.客户端如何找到连接的服务器 客户端通过URL找到想要连接的服务器 2.什么是URL URL的全称是Un ...
- 打印 SpringMVC中所有的接口URL
采用junit test方式 1.配置 simple-test.xml <?xml version="1.0" encoding="UTF-8"?&g ...
- sublime text 3 如何安装 package control
sublime text3 是个很好的编辑工具,前端程序员觉得她很好,我是在一次视频中看到她能帮助自动完成很多快捷的操作. 为什么安装? 如果想要给sublime text 中安装别的插件(这里称呼为 ...
- android基础开发之scrollview
scrollView 是android系统提供的一种 特殊的展示view. 其实我们很早就遇到过scrollview的东东,比如listview. 而google官方文档也提出,不要混合使用scrol ...
- Handler与Looper,MessageQueue的关系
总结一下Handler与Looper,MessageQueue的关系,并实现自定义与子线程相关的Handler. 一.Handler与Looper,MessageQueue的关系 它们之间的关系其实就 ...