java file类总结

2023-11-18

直入正题

代码(自己可以复制去看)

里面主要     介绍了文件的File类的新建、删除、重命等操作,以及File文件的属性方法

package com.gx.iodemo;

import java.awt.BufferCapabilities.FlipContents;
import java.io.File;
import java.io.IOException;

/**
 * File 文件类   
 *  File类是Java.io包下代表与平台(系统)无关的文件和目录。
 * 	可以新建文件(目录)、删除文件(目录)、重命名文件(目录),(还可以做到类似移动文件效果)
 *  但是不能读取文件内容。
 * @author en
 *
 */
public class Demo01_File {
	public static void main(String[] args) throws IOException {
		// windows的路径 D:\目录\目录\   由于\为转义字符  应该写为 D:\\目录\\目录\\
		//linux或者unix的路径为  /Home/.....
		//在Java支持将/当作平台无关的分隔符。
		
		/*
		 * 1、pathSeparator与pathSeparatorChar与系统文件路径分隔有关
		 * 例如:    F:\Java学习\文件操作与异常;G:\重装系统        
		 * 其中的  “;” 为    “F:\Java学习\文件操作与异常”   和         “G:\重装系统” 两个不同路径的分隔符
		 * 两者的不同在于:pathSeparator被表示为一个字符串,如果此字符串只包含一个字符,则可用pathSeparatorChar来表示。
		 * 还有,pathSeparator、pathSeparatorChar是路径分隔符,在Window上是";",在Unix上是":"

         *2、separator与separatorChar在同一个路径之下,相邻层级目录间或目录与文件间的分隔符有关
         *例如:     F:\Java学习\文件操作与异常其中的“\”为  “Java学习”和“文件操作与异常”两个相邻层级目录的分隔符
         *两者的不同在于:separator被表示为一个字符串,如果此字符串只包含一个字符,则可用separatorChar来表示。
         *还有,separator、separatorChar是名称分隔符,在Window上是"\",在Unix上是“/”
		 * 
		 */
		//指的是分隔连续多个路径字符串的分隔符.例如:java   -cp   test.jar;abc.jar   HelloWorld 
		System.out.println(File.pathSeparator);
		
		//才是用来分隔同一个路径字符串中的目录的,例如:C:/Program Files/Common Files 
		System.out.println(File.separator);
		
		//pathSeparator、pathSeparatorChar是路径分隔符,在Window上是";",在Unix上是":"
		System.out.println(File.pathSeparatorChar);
		System.out.println(File.separatorChar);
		
		
		//访问文件名相关方法
		File file=new File("E:/e");
		System.out.println("文件(目录)名称:"+file.getName());
		System.out.println("文件(目录)路径:"+file.getPath());
		System.out.println("文件(目录)绝对路径:"+file.getAbsolutePath());
		System.out.println("文件(目录)的父目录:"+file.getParent());
		if (file.isDirectory()) {//是否是目录
			String[] strings=file.list();//获取子文件和子目录
			System.out.println("当前目录下的子文件和子目录");
			for (String string : strings) {
				System.out.println(string);
			}
		}
		
		//创建文件
		File file_2=new File("E:/e/123.txt");
		System.out.println("文件是否存在"+file_2.exists());
		System.out.println("是否创建成功文件:"  +file_2.createNewFile());//创建文件
		
		//创建文件夹
		File file_1=new File("E:/e/b");
		System.out.println("文件是否存在"+file_1.exists());
		System.out.println("是否创建成功文件夹:"  +file_1.mkdir());//新建子目录(即文件夹)//创建文件夹

		//读写执行 
		System.out.println("是否可写:"+file_2.canWrite());
		System.out.println("是否可读:"+file_2.canRead());
		System.out.println("是否可执行:"+file_2.canExecute());
		System.out.println("是否是目录:"+file_2.isDirectory());
		System.out.println("是否可文件:"+file_2.isFile());
		System.out.println("是否绝对路径:"+file_2.isAbsolute());
		System.out.println("是否隐藏:"+file_2.isHidden());
		
		
		//----创建一个文件
		System.out.println("--------------------");
		File file3=new File("D:\\test.txt");
		System.out.println("创建文件:"+file3.createNewFile());
		System.out.println("文件存在:"+file3.exists());
		System.out.println("删除文件:"+file3.delete());
		System.out.println("文件存在:"+file3.exists());
		System.out.println("创建文件:"+file3.createNewFile());
		System.out.println("文件大小:"+file3.length()+"字节");//
		System.out.println("文件最后修改时间:"+file3.lastModified());
		file3.renameTo(new File("E:\\z\\12\\test.txt"));//重命名 可以变相看做移动文件
		//file3.deleteOnExit();//程序退出时删除文件
	}
}

一个案例(根据对应路径循环获取路径下的  文件夹和文件)

package com.gx.iodemo;

import java.io.File;

/**
 * 循环输出某路径下的文件夹和文件
 * 
 * @author 星月
 *
 */
public class Demo02_File {
	public static void main(String[] args) {
		File file=new File("E:\\Dev");//当前目录
		printFile(file,0);
	}
	
	public static void printFile(File file,int count){
		if (file.exists()) {//测试文件或目录是否存在
			StringBuffer buffer=new StringBuffer();
			if (count!=0) {
				buffer.append("|");
			}
			for (int i = 0; i < count; i++) {
				buffer.append("--");
			}
			if (file.isDirectory()) {//Directory目录     是否为目录   
				System.out.println(buffer.toString()+"["+file.getName()+"]");
				File[] files=file.listFiles();//在这获取file文件下的     文件和文件夹     数组值
				//(递归)为文件夹时,再次调用自身方法 
				for (File file2 : files) {
					//达到效果为:循环第一次的文件夹下的数据,
					//情况:1、是文件夹时,会再次重复类似的循环、
					//    2、是文件时,直接输出
					printFile(file2,count+1);
				}
			}
			else{
				System.out.println(buffer.toString()+">"+file.getName());
			}
		} 
	}
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java file类总结 的相关文章

  • Java中有没有一种方法可以通过名称实例化一个类?

    我正在寻找问题 从字符串名称实例化一个类 https stackoverflow com questions 9854900 instantiate an class from its string name它描述了如何在有名称的情况下实例
  • Mockito:如何通过模拟测试我的服务?

    我是模拟测试新手 我想测试我的服务方法CorrectionService correctPerson Long personId 实现尚未编写 但这就是它将执行的操作 CorrectionService将调用一个方法AddressDAO这将
  • Spring AspectJ 在双代理接口时失败:无法生成类的 CGLIB 子类

    我正在使用Spring的
  • 如何获取之前的URL?

    我需要调用我的网络应用程序的 URL 例如 如果有一个从 stackoverflow com 到我的网站 foo com 的链接 我需要 Web 应用程序 托管 bean 中的 stackoverflow 链接 感谢所有帮助 谢谢 并不总是
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • java.lang.IllegalStateException:应用程序 PagerAdapter 更改了适配器的内容,而没有调用 PagerAdapter#notifyDataSetChanged android

    我正在尝试使用静态类将值传递给视图 而不是使用意图 因为我必须传递大量数据 有时我会收到此错误 但无法找出主要原因是什么 Error java lang IllegalStateException The application s Pag
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供

随机推荐

  • [激光原理与应用-66]:激光器-器件 - 二极管

    第1章 二级管的基本原理 1 1 原理 现在的电子产品中 元件应用最多的是半导体材料 在集成电路中 也是应用的半导体单晶硅作为基底 通过离子注入技术而添加了硼和磷元素从而构成数以亿计的半导体晶体管 对于半导体元件来说 发挥作用的是PN结 在
  • 5G/NR 随机接入过程之Msg2

    21 6 Msg2 UE发送了preamble之后 将在RAR时间窗 RA Response window 内监听PDCCH 以接收对应RA RNTI的RAR 此时不考虑可能出现的测量gap 如果在RAR时间窗内没有接收到gNB回复的RAR
  • RPA经验分享--离线识别普通验证码

    了解RPA www i search com cn 学习RPA https support i search com cn 下载RPA https www i search com cn from csdn 前言 以下方法适用于简易的验证码
  • 【Linux】进程控制2-进程等待

    文章目录 进程等待 进程等待的必要性 wait函数 waitpid函数 进程等待 进程等待的必要性 我们之前提到过僵尸进程 僵尸进程就是子进程先于父进程退出 子进程的退出状态信息发送给父进程但是父进程忽略处理 子进程就变成了僵尸进程 解决僵
  • programming massively parrellel processors(1)

    I have to say this is a very good book to learn more about cuda especially for a novice like me who take interest in par
  • 入职字节两个月,实在卷不动,还是离职了

    对自己收入不满意 就看下自己每天做了什么 把每天记录下来 看下自己的时间都用在哪里了 对自己的时间分配搞清楚了 就可以着手去改进 如果一直糊涂的过 时间到了报复就来了 时间管理很简单 不过大多数人是不会重视的 别总抱怨自己赚钱少 关键你做了
  • Asgard King(埃氏筛法)

    Description Thor had great power but his arrogant and reckless behavior set off an ancient war and he was demoted into t
  • Mock介绍

    mock的定义 what mock是在测试过程中 对于一些不容易构造 获取的对象 创建一个mock对象来模拟对象的行为 为什么要使用mock why 在做单元测试过程中 经常会有以下的场景 class A 依赖 class B class
  • 14.C++之对象的初始化和清理

    学习目标 学习内容 1 对象的初始化和清理 在C 中 每个对象也都会有初始设置以及 对象销毁前的清理数据的设置 今天介绍两种函数 构造函数和析构函数 来完成对象的初始化和清理 构造函数 主要用于为对象的成员属性赋值 又编译器自动完成 无须手
  • 报错:SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position xx: truncated

    我给出的错误代码 错误原因 文件路径输入问题 解决方法 1 在前面加r 2 将 变为 3 将 变为
  • C++学习日志

    小白C 从入门到放弃 1 黑马通讯录管理系统 点运算符 和箭头运算符 gt 的区别 2 Essential C 中练习2 1 3 Essential C 中练习2 2 4 Essential C 中练习2 3 5 Essential C 中
  • C++中变量声明和定义

    1 声明和定义都规定了变量的名字和类型 但是定义会申请内存空间 也可能为变量赋一个初始值 2 同一个变量声明可以有多处 但定义只能有一处 extern int i 声明i而非定义i int j 声明并定义j extern关键字就是告诉编译器
  • 机器智能学科

    机器智能学科简介 机器智能 Machine Intelligence MI 是指由机器 计算机以及其它计算设备 实现的人的智能 也被称为人工智能 Artificial Intelligence AI 专指计算机科学中与智能行为自动化有关的一
  • RAC重建OCR/Voting disk总结

    author skatetime 2010 05 10 我的测试环境 母系统 win2003虚拟软件 vmware3 2 1guest系统 centos4 7oracle db oracle10 2 1 前两天由于意外原因 同事从新插拔下电
  • Auto-GPT横空出世!

    转自公众号 放码过来a 千万别关注 为怕你看了会上瘾 Auto GPT 顾名思义 其独到之处就在于 Auto 可 自主 实现你设定的任何目标 即 Auto GPT 会自己上网查资料 自己思考解决方案 自己运用相关工具 而你要做的 就是在屏幕
  • 报错Error : Program type already present: android.support.design.widget.CoordinatorLayout$

    方法一 support依赖版本改为27 1 1并添加一下配置 implementation com android support appcompat v7 27 1 1 configurations all exclude group c
  • 工具技能学习(一):前置技能-makfile、make、.mk

    工具技能学习 一 前置技能 makfile make mk 在构建镜像的时候你肯定看到了很多的makefile文件 昨天我们也解读一些一些构建编译的makefile文件 但是有些兄弟没有这方面的经验 对于makefile文件的格式还是不是很
  • 树莓派4B之Windows XP系统安装游戏(二)

    上一篇博文 树莓派4B之Windows XP系统安装游戏 一 上上篇博文 树莓派4B安装windows xp windows 95 windows xp windows 95 for raspberry pi 4B 目录 一 获取游戏下载途
  • re模块----你也可以玩得很溜正则表达式

    目录 re模块 compile pattern flags 0 flag匹配模式 match pattern string flags 0 search pattern string flags 0 findall pattern stri
  • java file类总结

    直入正题 代码 自己可以复制去看 里面主要 介绍了文件的File类的新建 删除 重命等操作 以及File文件的属性方法 package com gx iodemo import java awt BufferCapabilities Fli