java操作文件爱女_Java的IO操作---File类

目标

1)掌握File类作用

2)可以使用file类中方法对文件进行读写操作。

File类

唯一与文件有关的类。使用file类可进行创建或删除操作,要想使用File类,首先观察File类的构造方法。

public File(String pathname);实例化File类的时候,必须设置好路径。

0f552f34bd0fe9aabd449d23b1e1c080.png

常量::

public staitc final String pathSeparator;

明明使用了static final定义的常量,这里为什么使用了小写方式。实际上这属于JAVA的历史遗留问题。

实例操作一:创建一个新文件。

创建文件:

public boolean creatNewFile() throws IOExcetion

用以上方法就可以创建文件,但是注意要有异常处理。

在D盘创建一个文件:

importjava.io.File ;importjava.io.IOException ;public classFileDemo01{public static voidmain(String args[]){

File f= new File("d:\\test.txt") ; // 实例化File类的对象,给出路径

try{

f.createNewFile() ;// 创建文件,根据给定的路径创建

}catch(IOException e){

e.printStackTrace() ;//输出异常信息

}

}

};

运行结果:

8b30a7a51ccee0a61a38afa46cc77e6c.png

步骤:首先创建File对象,创建对象的时候要给出文件路径,然后用这个对象调用creatNewFile()方法,注意调用方法时候要有异常处理。

以上完成了文件创建功能,但是开发中以上程序编写肯定会出现错误,在各个操作系统中,路径分隔符是不一样的。例如:

windows使用反斜杠:"\"

Linux中使用正斜杠:"/"

要想让JAVA可移植增强,最好让操作系统自动使用分隔符。

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(String args[])

{

System.out.println("pathSeparator:" + File.pathSeparator) ; //调用静态常量

System.out.println("separator:" + File.separator) ; //调用静态常量

}

}

运行结果:

pathSeparator:;

separator:\

要想保持可移植性,在编写的时候应该使用File类中的常量。修改之前程序。

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(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();

将之前建立好的文件删除掉。

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(String args[])

{

File f= new File("d:"+File.separator+"test.txt") ; // 实例化File类的对象

f.delete() ; // 删除文件

}

}

运行结果:

确实删除了文件。

此时文件确实删除了,但是删除之前最好进行判断文件是不是存在。

在File类中可以使用exists()方法判断一个文件是否存在。

public boolean exists();

使用以上代码增强之前程序。

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(String args[])

{

File f= new File("d:"+File.separator+"test.txt") ; //实例化File类的对象

if(f.exists()){ // 如果文件存在则删除

f.delete() ; //删除文件

}elseSystem.out.println("文件不存在");

}

}

运行结果:

文件不存在

由于之前已经删除了,所以这里文件不存在。

综合创建,删除文件的操作

要求:给定一个路径,如果文件存在删除,不存在,创建之。

importjava.io.File ;importjava.io.IOException ;public classFileDemo06{public static voidmain(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();

实例;

importjava.io.File ;importjava.io.IOException ;public classFileDemo07{public static voidmain(String args[]){

File f= new File("d:"+File.separator+"mldn") ; //实例化File类的对象

f.mkdir() ; //创建文件夹

}

};

运行结果:创建成功一个名为mldn的文件夹。

列出指定目录的全部文件。

如果给出一个目录,可以列出目录中全部内容,但是列出的方法存在两个:

1,以字符串数组的形式返回。

public String [] list();

2,以File数组形式返回:

pulbic File [] listFiles();

操作一:list()方法:

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(String args[])

{

File f= new File("d:"+File.separator) ; //实例化File类的对象

String str[] = f.list() ; // 列出给定目录中的内容

for(int i=0;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()方法列出。

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(String args[])

{

File f= new File("d:"+File.separator) ; //实例化File类的对象

File files[] = f.listFiles() ; // 列出全部内容,注意需要一个files对象数组接受这个返回数组。

for(int i=0;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();

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(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:\路径是目录。

列出指定目录的全部内容

如果给定一个目录,则讲目录的全部文件列出来,但是列的时候可能存在子文件夹,子文件夹也有子文件夹。

254fca32d90f41a20b2abe602a649769.png

应该采用递归的形式。

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(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

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()。还有递归。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396370.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openssl创建私有ca

openssl创建私有ca1.ssl大概内容PKI:公钥基础设施结构CA:证书权威机构,PKI的核心CRL:证书吊销列表,使用证书之前需要检测证书有效性证书存储格式常见的X509格式包含内容 公钥有效期限证书的合法拥有人证书该如何使用CA的信息CA签名…

查询显示注释_SQL的简单查询

1.基本的查询语句-- *代表查询所有的列select * from <表名>;distinct表示列中不包括重复的值&#xff0c;例如select distinct 姓名&#xff1b;如果是select distinct 姓名,学号&#xff1b;则表示姓名和学号都重复的值才会显示。as为列设定别名&#xff0c;例如select…

【AC自动机】【数据结构】【树】【Aho-Corasick automation】AC自动机理解(入门)...

引入 我们首先提出一个问题&#xff1a; 给出n个串每个串的长度≤m 然后给出一个长度为k的串&#xff0c;询问前n个串中有多少个是匹配成了的 暴力搜索 这题不是sb题目吗&#xff1f; 随随便便O(kmn)跑过。 。。。。 n10000 m50 k1000000 。。。。 好吧——我们用AC自动…

域控dns无法解析域控_域注册商,DNS和托管

域控dns无法解析域控by ᴋɪʀʙʏ ᴋᴏʜʟᴍᴏʀɢᴇɴ由ᴋɪʀʙʏᴋᴏʜʟᴍᴏʀɢᴇɴ 域名注册商&#xff0c;DNS和托管 (Domain registrars, DNS, and hosting) 如何正确设置网站 (How to set up your website the right way) It took me a while to set up the infras…

java 栈空间_初学JAVA——栈空间堆空间的理解

1.Person pangzi; //这是在“开拓空间”于栈空间pangzinew Person(); //这是赋值于堆空间上两步就是在做与空间对应的事。2.值类型直接存入栈空间&#xff0c;如AF&#xff0c;引用类型存入堆空间&#xff0c;在栈空间存有“索引地址”&#xff0c;如当需要B时&#xff0…

二进制安装kubernetes v1.11.2 (第八章 kube-apiserver 部署)

继续上一章部署。 八、部署kube-apiserver组件 使用第七章的haproxy和keepalived部署的高可用集群提供的VIP&#xff1a;${MASTER_VIP} 8.1 下载二进制文件&#xff0c;参考 第三章  8.2 创建 kubernetes 证书和私钥 source /opt/k8s/bin/environment.sh cat > kubernetes-…

element手机验证格式_vue封装 element-ui form表单验证 正则匹配手机号 自定义校验表格内容...

效果image.png在methods中//检查手机号isCellPhone(val) {if (!/^1(3|4|5|6|7|8)\d{9}$/.test(val)) {return false;} else {return true;}}在template中v-model"forgetForm.phone"type"text"auto-complete"off"placeholder"请输入你的手机…

multi-mechanize error: can not find test script: v_user.py问题

从github上下载&#xff0c;安装multi-mechanize&#xff0c;新建工程&#xff0c;运行工程报错。 环境&#xff1a; win7-x64, python 2.7 multi-mechanize can not find test script: v_user.py 查看了github上的工程&#xff0c;项目无人维护&#xff0c;这个问题2016年11月…

@RequestMapping 用法详解之地址映射

引言&#xff1a; 前段时间项目中用到了RESTful模式来开发程序&#xff0c;但是当用POST、PUT模式提交数据时&#xff0c;发现服务器端接受不到提交的数据&#xff08;服务器端参数绑定 没有加任何注解&#xff09;&#xff0c;查看了提交方式为application/json&#xff0c; 而…

我的第一个网页 代码_我在免费代码营的第一个月

我的第一个网页 代码by Elliott McNary埃利奥特麦克纳里(Elliott McNary) 我在免费代码营的第一个月 (My First Month At Free Code Camp) I wanted to build an app that would help artists to make more money.我想开发一个可以帮助艺术家赚更多钱的应用。 I had a clear …

java pem rsa_如何从java中的pfx文件/ pem文件中获取RSA公钥的指数和模数值

I want to extract information about RSA Public Key from the pfx file using java.我有一个pfx文件并转换为x509 Pem文件 . 从pem文件&#xff0c;在终端中使用以下命令&#xff1a;openssl x509 -in file.pem -text我能够查看公钥指数和模数值主题公钥信息&#xff1a;Publ…

jmeter+maven+jenkins自动化接口测试(下)

mavenjmeter已经写好了&#xff0c;可以通过maven来执行jmeter的接口测试脚本&#xff0c;怎样实现定时执行测试并发送报告邮件就需要通过jenkins了&#xff08;jmeter或者testng也可以结合不同的邮件jar包来发送邮件&#xff0c;这里使用jenkins&#xff09; 安装jenkins笔记有…

在使用angularjs过程,ng-repeat中track by的作用

转载&#xff1a;http://segmentfault.com/q/1010000000405730<div ng-repeat"links in slides"> <div ng-repeat"link in links track by $index">link.name</div></div>Error: [ngRepeat:dupes]这个出错提示具体到题主的情况…

java判断读到末尾_IO流如何判断读取到了流的结尾,程序中以-1来判断,是流中写入一个EOF表示流结束吗,底层实现呢?...

-1不是流中写入的数据。read()方法返回的数据都是unsigned byte&#xff0c;即是[0,255]。底层实现有很多&#xff0c;比如socket IO和文件IO&#xff0c;甚至你自己也可以实现。——————————————————————给两个类的代码给你看看&#xff0c;理解一下这个东…

结束书

by William Countiss威廉Countiss 结束书 (Closing the Book on Closures) JavaScript closures are an important, but notoriously confusing concept. There’s no escaping it — if you want to grow as a developer, you need to understand what closures are and how …

java激励_激励干个人java的不足之处

1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF&#xff0c;J2EEDP)以及综合模式。你应该十分了解UML&#xff0c;尤其是class&#xff0c;object&#xff0c;interaction以及statediagrams。2.你需要学习JAVA语言的基础知识以及它的核心类库(collections&#xff0c;…

Bioconductor软件安装与升级

1 安装工具Bioc的软件包不能使用直接install.packages函数&#xff0c;它有自己的安装工具&#xff0c;使用下面的代码&#xff1a; source("https://bioconductor.org/biocLite.R")biocLite() 上面第二个语句将安装Bioconductor一些基础软件包&#xff0c;包括BiocI…

Laravel Kernel引导流程分析

Laravel Kernel引导流程分析 代码展示 protected function sendRequestThroughRouter($request) {# $this->app->instance(request, $request);# Facade::clearResolvedInstance(request);// 主要是这句代码$this->bootstrap();# return (new Pipeline($this->app)…

Android RecyclerView (一) 使用完全解析

转载请标明出处&#xff1a; http://blog.csdn.net/lmj623565791/article/details/45059587&#xff1b; 本文出自:【张鸿洋的博客】 概述 RecyclerView出现已经有一段时间了&#xff0c;相信大家肯定不陌生了&#xff0c;大家可以通过导入support-v7对其进行使用。 据官方的…

数据透视表日期怎么选范围_透视范围

数据透视表日期怎么选范围by Tiffany White蒂芙尼怀特(Tiffany White) 透视范围 (Putting Scope in Perspective) In JavaScript, lexical scope deals with where your variables are defined, and how they will be accessible — or not accessible — to the rest of your…