java32:I/O

Java 对操作系统中文件系统的支持

File 类

用于描述操作系统中的一个文件或者目录

通过File 我们可以得知文件的名字,大小,修改时间等信息,但是不能读取文件的内容

package day32;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class FileDemo {
	public static void main(String[] args){

		File file = new File("."+File.separator+"File.txt");
		//File file = new File(".");

								//	目录分割符 保证最好的兼容性

		if(file.exists()){//file.exists() 文件是否存在 boolean
			System.out.println("Existing file");
			if(file.isFile()){//是不是文件
				System.out.println("Is File");
			}
			if(file.isDirectory()){//是不是目录
				System.out.println("Is Dir");
			}
			System.out.println("名字:"+file.getName());//获取File 描述的文件或者目录的名字
			System.out.println(file.getName()+":"+file.length()+"字节");//获取File的字节量

			long last = file.lastModified();//获取文件最后一次修改的日期的毫秒值
			Date date = new Date(last);
			SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 - HH:mm:ss");
			System.out.println(format.format(date));

			System.out.println(file.getPath());//相对路径

			System.out.println(file.getAbsolutePath());//绝对路径,有点问题
			try {
				System.out.println(file.getCanonicalPath());//系统标准的绝对路径,但是这个方法要求我们捕获异常
			} catch (Exception e) {

			}

			System.out.println("可读"+file.canRead());//判断是否可读 boolean
			System.out.println("可写"+file.canWrite());//判断是否可写 boolean

		}else{
			System.out.println("No Existing file");
		}
	}
}
package day32;

import java.io.File;

public class FileDemo02 {
	public static void main(String[] args){
		File dir = new File("."+File.separator+"Img");
		if(!dir.exists()){
			dir.mkdir();//创建了一个目录

		}else{
			System.out.println("目录已存在");
		}
		//File sub = new File("."+File.separator+"Img"+File.separator+"sub");
		File sub = new File(dir,"Sub");//重载
		if(!sub.exists()){
			sub.mkdir();
		}else{
			System.out.println("目录已存在");
		}

	}
}
package day32;

import java.io.File;

public class FileDemo03 {
	public static void main(String[] args){
		File file = new File("."+File.separator+"a"
								+File.separator+"b"
								+File.separator+"c"
								+File.separator+"d"
								+File.separator+"e"
					);
		System.out.println(file.getPath());
		if(!file.exists()){
			file.mkdirs();//创建多级目录
		}
	}
}
package day32;

import java.io.File;
import java.io.IOException;

public class FileDemo04 {//创建文件
	public static void main(String[] args){
		File file = new File("Readme.txt");//  .\可以省略不写 默认就是在当前目录的
		if(!file.exists()){
			try{
			file.createNewFile();//不支持创建目录的同时创建文件
			}catch(IOException e){

			}
		}
	}
}
package day32;

import java.io.File;

/**
 * 
 *	删除文件或者目录
 */
public class FileDemo05 {
	public static void main(String[] args) {
		File file = new File("Readme.txt");
		if(file.exists()){
			file.delete();
		}else{
			System.out.println("没有 这个 文件");
		}
		File file1 = new File("Img");
		if(file1.exists()){
			file1.delete();//删掉目录的时候目录中必须是空的
		}else{
			System.out.println("没有这个目录");
		}

	}
}
package day32;

import java.io.File;
import java.util.Arrays;
/**
 * 
 *获取当前目录下所有子项的名字
 */
public class FileDemo06 {
	public static void main(String[] args){
		File file = new File(".");
		if(file.isDirectory()){
			String[] filename = file.list();
			System.out.println(Arrays.toString(filename));
		}
		File[] subs = file.listFiles();//获取所有的子项
		for(File f:subs){
			System.out.println(f.getName()+"-"+f.length());
		}
	}
}
时间: 2024-12-21 20:22:35

java32:I/O的相关文章

Oracle 11g数据库详解(2015-02-28更新)

Oracle 11g数据库详解 整理者:高压锅 QQ:280604597 Email:[email protected] 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认真回复的 1   简介 数据库操作主要有以下几步: 1.  启动.停止数据库 2.  连接.断开数据库 3.  创建.修改.删除数据库用户 4.  表空间 5.  新建.修改.删除表 6.  查询.插入.修改.删除表数据 7.  新建.修改.删除视图 8.  新建.修改.删除存储过程 9.  新建.修改.删除触发

安装Windows7系统时,提示:缺少所需的CD/DVD驱动器设备驱动程序

      测试机型:HP probook 430 g3       系统:Windows 7 Pro x64 现在笔记本电脑主板集成的USB口大多为3.0版本,而且一些厂商为了追求PC的轻薄,不再集成光驱,所以我们在安装系统时,一般只能通过U盘或U口外接光驱. 而当我们因为需要(安装OEM系统),在通过刻录软件(如UltraISO)将系统写入U盘或光盘的方式安装系统时,此时问题就可能悄悄出现了:因为Win7官方原版系统没有集成USB3.0驱动,所以可能的报错如下: 点击"浏览"或通过

solr分布式索引【实战一、分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例】

1 private static Properties prop = new Properties(); 2 3 private static String confFilePath = "conf" + File.separator + "config.properties";// 配置文件目录 4 static { 5 // 加载properties 6 InputStream is = null; 7 InputStreamReader isr = null;

Vue.js学习笔记:属性绑定 v-bind

v-bind  主要用于属性绑定,Vue官方提供了一个简写方式 :bind,例如: <!-- 完整语法 --> <a v-bind:href="url"></a> <!-- 缩写 --> <a :href="url"></a> 绑定HTML Class 一.对象语法: 我们可以给v-bind:class 一个对象,以动态地切换class.注意:v-bind:class指令可以与普通的class特

.Net使用163smtp发送邮件时错误:邮箱不可用. has no permission解决方法

C#实现简单邮件发送代码如下 public static void SendAsync(string emailTo, string subject, string mailBody) { var msg = new MailMessage(); msg.To.Add(emailTo); // msg.From = new MailAddress(_userNameForEmail, "显示的发件人名称", System.Text.Encoding.UTF8); msg.Subject

oracle安装故障:完美解决xhost +报错: unable to open display “”

oracle安装 先切换到root用户,执行xhost + 然后再切换到oracle用户,执行export DISPLAY=:0.0 出现乱码执行export LANG=US_en 在这里给大家介绍下两种情况的常见问题: 一种是本地运行的命令,另一种则是远程ssh命令安装. DISPLAY科普 DISPLAY变量是用来设置将图形显示到何处.比如CENTOS,你用图形界面登录进去,DISPLAY自动设置为DISPLAY=:0.0表示显式到本地监视器,那么通过终端工具(例如:xshell)进去,运行

SQL查询字段添加括号报错:Operand should contain 1 column(s)

SQL语句:查询连个字段的信息 SELECT (menu_id,menu_captions) FROM bsdb.menulist a WHERE a.menu_id like ('2_'); 然后,因为这是在存储过程中的一个语句所以,在执行存储过程的时候编译不会报错,但是执行的时候却汇报错:Operand should contain 1 column(s):原因不好解释: 下面是官方发解释(MYSQL):https://dev.mysql.com/doc/refman/5.0/en/row-

谈谈APP架构选型:React Native还是HBuilder

原文链接 导读:最近公司的一款新产品APP要进行研发,老大的意思想用H5来做混合APP以达到高效敏捷开发的目的.我自然就开始进行各种技术选型的调研,这里重点想说的是我最后挑选出的2款hybrid app开发技术方案:RN(react native),HBuilder.React Native是大名鼎鼎的Facebook的开源技术框架,而HBuilder是国内的H5工具开发公 司DCLOUD的产品.我自己先总结下吧:这两个技术框架在开发效率上基本上可以媲美WEB开发的速度,RN强调的是“Learn

安装linux 系统报错:No DEFAULT or UI configuration directive found 解决方法

在报错信息后面的boot命令行输入: /isolinux/vmlinuz initrd=/isolinux/initrd.img 如果不行 重新输入 /isolinux/vmlinuz initrd=/isolinux/initrd.img xdriver=vesa nomodeset boot:/isolinux/vmlinuz initrd=/isolinux/initrd.img boot: /isolinux/vmlinuz initrd=/isolinux/initrd.img xdr