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自动…

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

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

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

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

Android RecyclerView (一) 使用完全解析

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

Asix下日志包冲突

为什么80%的码农都做不了架构师&#xff1f;>>> Class org.apache.commons.logging.impl.SLF4JLogFactory does not implement org.apache.commons.logging. 最近集成asix包的时候发生如下错误&#xff0c;原因是程序运行时logFactoryImple加载了JBOSS下面的sff4j包…

kubernetes中mysql乱码_在kubernetes中部署tomcat与mysql集群-Go语言中文社区

在kubernetes中部署tomcat与mysql集群之前必须要有以下这些基础&#xff1a;1. 已安装、配置kubernetes2. 集群中有tomcat与mysql容器镜像3. 有docker基础具体步骤部署tomcat创建tomcat RC对象我们想要在kubernetes集群中配置tomcat服务器&#xff0c;首先要保证集群中的节点上…

【原】Jenkins持续集成环境搭建之创建java项目的job【centos6.5 java maven git 项目】...

一、构建一个maven项目在jenkins主页上&#xff0c;左侧&#xff0c;选择“新建”&#xff0c;然后填写项目名称&#xff0c;选择“构建一个maven项目”二、Git配置保存之后&#xff0c;进入详细配置页面&#xff1a;这里的源码管理&#xff1a;选择git&#xff0c;输入代码的g…

Linux内核分析作业第八周

进程的切换和系统的一般执行过程 一、进程调度的时机 中断处理过程&#xff08;包括时钟中断、I/O中断、系统调用和异常&#xff09;中&#xff0c;直接调用schedule()&#xff0c;或者返回用户态时根据need_resched标记调用schedule()&#xff1b; 内核线程可以直接调用sched…

iOS--数据存储NSUserDefaults

2019独角兽企业重金招聘Python工程师标准>>> 今天去面试&#xff0c;被问道NSUserDefaults的存取并手写出来&#xff0c;一时想不起来&#xff0c;回来之后看看之前的笔记&#xff0c;稍作一些整理 NSUserDefaults是一个单例&#xff0c;在整个程序中只有一个实例对…

mysql5.6热升级_Mysql5.6主从热备配置

数据库是应用系统的核心&#xff0c;为了保证数据库的安全采用主从热备是很常见的方法&#xff0c;也就是主数据库DDL、DML都将被同步到从数据库。一、 实验环境操作系统&#xff1a;windowsserver 2008 R2数据库&#xff1a;mysql-advanced-5.6.21-winx64二、 准备工作1、…

dhcp服务

安装与配置 配置文件 修改配置文件 复制这个文件到另一端 打开另一端的配置文件 原端输入这些命令可以去掉英文 然后vim进入另一端配置文件 全局配置不在{}内的 分发范围是指哪个ip到哪个ip的范围 指定固定电脑获取固定位置 原端修改配置文件 下面进行启动dhcp 克隆一台虚拟机&…

java有什么压力_编程语言的心智负担!你学编程得有多大的压力快来测试一下...

很多编程语言对比的文章&#xff0c;总喜欢比较各种编程语言的性能、语法、IO模型。本文将从心智负担这个角度去比较下不同的编程语言和技术。内存越界如&#xff1a;C语言、C(C with class)C/C可以直接操作内存&#xff0c;但编程必须要面对内存越界问题。发生内存越界后&…

mapper mysql 主键_实现通用mapper主键策略兼容mysql和oracle

【原创文章&#xff0c;转载请注明原文章地址&#xff0c;谢谢&#xff01;】1.直接用官方提供的注解方法是无法达到兼容效果的2.跟踪源码看看是否有其他方法3.这里有个genSql&#xff0c;可以看一下这个类4.创建一个自定义的处理类实现GenSql(代码中是我实际项目中用到的策略&…

java 面试题 由浅入深_面试官由浅入深的面试套路

阅读文本大概需要3分钟。从上图看来面试官面试是有套路的&#xff0c;一不小心就一直被套路。0x01&#xff1a;Thread面试官&#xff1a;创建线程有哪几种方式&#xff1f;应聘者&#xff1a;继承Thread类、实现Runable接口、使用j.u.c中的线程池面试官&#xff1a;继承Thread类…

java string转long报错_java.lang.Integer cannot be cast to java.lang.Long解决办法

你好我是辰兮&#xff0c;本次是项目遇到的java.lang.Integer cannot be cast to java.lang.Long异常以及相对应的解决方案。文章目录一、实战问题用postman测试数据报错&#xff0c;类型转换异常&#xff01;如何将Integer类型转换成长整形 &#xff1f;先转成String型&#x…

pyqt 界面关闭信号_木辛老师的编程课堂之Python和Qt实战慕课软件开发:增加关闭按钮...

软件实战开始&#xff0c;快速提供编程能力&#xff1b;通过实战&#xff0c;分析产品需求&#xff0c;梳理设计需求&#xff0c;提升项目分析和架构的能力。快点跟着木辛老师一起学习吧&#xff01;请点击右上角“关注”按钮关注我们哟&#xff1a;跟着木辛老师学习Python编程…

最全面的几何画板实用教程视频免费下载

不同的选择就会有不同的人生夜&#xff0c;这里小编为奋斗在教学一线的老师们送个大福利&#xff0c;这也是老师们充实自己的好去处。作为数学老师一枚&#xff0c;在平时的教学中应该用到很多教学辅助软件&#xff0c;而几何画板就是其中一款。众所周知&#xff0c;几何画板是…

Redis(1):简介

2019独角兽企业重金招聘Python工程师标准>>> Redis之父Salvatore Sanfilippo于2009年将Redis开源。VMware公司从2010年开始赞助Redis的开发&#xff0c;Salvatore Sanfilippo和Pieter Noordhuis(另一名主要的代码贡献者)同年加入VMware&#xff0c;全职开发Redis。R…