2020-12-30——输入输出流1

java中的输入输出流1

输入输出流---对文件进行读【打开】写【修改】操作的java类库。

文件---把数据持久化到磁盘的载体

---文件的组成

1. 文件的属性【文件名称,文件大小,文件类型,创建时间.....】

2. 文件内容【输入输出流】

我们要想通过java提供的输入输出流读写文件中的内容就得先学会操作文件。

Java中为我们提供了一个专门操作文件的java类--java.io.File类

9.1.File类的对象创建和常用方法?

File类的定义  public class File

File类的静态成员变量

static String

pathSeparator 与系统相关的路径分隔符字符,为方便起见,表示为字符串。 

static char pathSeparatorChar 与系统相关的路径分隔符。 

 

static String

separator 与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。 

static char separatorChar 与系统相关的默认名称分隔符。 

package com.wangxing.filedemo.test1;

import java.io.File;

public class FileDemo1 {

	public static void main(String[] args) {
		//File类的静态成员变量
		//static String	pathSeparator 与系统相关的路径分隔符字符,为方便起见,表示为字符串。 [不常用]
		//static char	pathSeparatorChar 与系统相关的路径分隔符。  [不常用]
		//static String	separator 与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。 [常用]
		//static char	separatorChar 与系统相关的默认名称分隔符。 [不常用]
		System.out.println("static String	pathSeparator=="+File.pathSeparator); //  ;
		System.out.println("static char	pathSeparatorChar=="+File.pathSeparatorChar);// ;
		System.out.println("static String	separator=="+File.separator);//  \
		System.out.println("static char	separatorChar=="+File.separatorChar); //  \
		//路径分隔符字符  ;    分隔符字符  \
		//常用的是分隔符字符  \ 【static String	separator[常用]/static char	separatorChar】
		//分隔符字符  \ 可以用来充当文件路径的分割符号
		//例如:F:\20201201\java基础\20201230java(22)\java中的输入输出流1.docx
		//sSystem.out.println("java中的输入输出流1.docx的路径==F:\20201201\java基础\20201230java(22)\java中的输入输出流1.docx");
		//默认的 \ 所代表的路径分隔符号在使用的时候会被认为是转义字符
		System.out.println("java中的输入输出流1.docx的路径==F:\\20201201\\java基础\\20201230java(22)\\java中的输入输出流1.docx");
	    //不同的操作系统使用的代表文件路径的分隔符号是不同的
		//例如 :  windows  --  \  liunx  ---  /
		//为了保证我们所编写的java程序能够正常的运行在不同的平台上,所以java将代表文件路径的分隔符号,封装成一个静态变量。
		//在不同的的平台上,这个静态变量就代表当前系统的文件路径的分隔符号
		//所以我们以后再编写文件路径的时候,要尽量使用File类提供的表示分隔符字符的静态变量
		System.out.println("java中的输入输出流1.docx的路径==F:"+File.separator+
				"20201201"+File.separator+"java基础"+File.separator+
				"20201230java(22)"+File.separator+"java中的输入输出流1.docx");
	}

}

构造方法

File(String pathname) 通过给定的文件路径字符串创建新的 File实例。 

File(String parent, String child) 通过给定的文件位置字符串和给定的文件名称字符串创建新的 File实例。 

File(File parent, String child) 通过给定的文件位置File对象和给定的文件名称字符串创建新的 File实例。  

package com.wangxing.filedemo.test1;

import java.io.File;

public class FileDemo2 {

	public static void main(String[] args) {
		//File类的构造方法
		//File(String pathname) 通过给定的文件路径字符串创建新的 File实例。 
		//String pathname---文件/文件夹路径字符串
		//利用eclipse文件夹路径创建表示eclipse文件夹的File对象
		String eclipsepath="F:"+File.separator+"20201201"+File.separator+"test";
		File  eclipseFile=new File(eclipsepath);
		//利用eclipse-jee.zip文件路径创建表示eclipse-jee.zip文件的File对象
		String  eclipsejeezip="F:"+File.separator+"20201201"+File.separator+"mytest.txt";
		File  eclipsejeezipFile1=new File(eclipsejeezip);
		//File(String parent, String child) 通过给定的文件位置字符串和给定的文件名称字符串创建新的 File实例。 
		//String parent---保存文件所在文件夹的路径
		//String child ---文件名称
		//创建eclipse-jee.zip文件的File对象
		String  parent="F:"+File.separator+"20201201";
		String child="student.txt";
		File  eclipsejeezipFile2=new File(parent,child);
		//File(File parent, String child) 通过给定的文件位置File对象和给定的文件名称字符串创建新的 File实例。  
		//File parent---保存文件所在文件夹的路径[利用第一个File构造方法]
	    //String child ---文件名称
		//创建eclipse-jee.zip文件的File对象
		File  parentfile=new File("F:"+File.separator+"20201201");
		String childString="user.doc";
		File  eclipsejeezipFile3=new File(parentfile,childString);
	    //利用File类的构造方法创建出File对象,并不会在磁盘中创建实际的文件/文件夹
		//它只是表示你创建出了表示这个文件/文件夹的对象。
		//实际的文件/文件夹的创建需要使用File对象调用对应的方法来创建
	}

}

注意:文件File类的对象创建以后,不会生成实际的文件。

实例方法

boolean exists() 判断路径名表示的文件或目录是否存在。 

boolean createNewFile() 创建新文件

boolean mkdirs()  创建新的文件夹

boolean delete()  删除文件/文件夹

删除文件夹的时候要将该文件夹下的文件和子文件夹全部删除

boolean canRead() 判断文件是否可读

boolean canWrite() 判断文件是否可写 

boolean isHidden() 判断文件是否为隐藏文件。 

boolean isFile() 判断文件对象是否为普通文件。 

boolean isDirectory() 判断文件对象是否为目录。

String

getPath() 得到文件对象的路径名字符串。 

String

getName() 得到文件对象所表示的文件或目录的名称。 

String

getParent() 得到文件对象所表示的路径的父目录路径 

long length() 得到文件对象所表示的文件的长度。 

long lastModified() 得到文件对象所表示的文件上次修改的时间。 

String[]

list() 得到文件对象代表的文件夹中的所有文件和文件夹名称返回一个字符串数组

File[]

listFiles() 得到文件对象代表的文件夹中的所有文件和文件夹的文件对象,返回一个文件对象数组

package com.wangxing.filedemo.test1;

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

public class FileDemo3 {

	public static void main(String[] args)throws Exception {
		//File类的实例方法
		//boolean	exists() 判断路径名表示的文件或目录是否存在。 
		String testpath="F:"+File.separator+"20201201"+File.separator+"test";
		File  testFile=new File(testpath);
		//System.out.println("testFile--exists=="+testFile.exists());
		String  mytestpath="F:"+File.separator+"20201201"+File.separator+"mytest.txt";
		File  mytestFile=new File(mytestpath);
		//System.out.println("mytestFile--exists=="+mytestFile.exists());
		//boolean	createNewFile() 创建新文件
		//System.out.println("mytestFile--createNewFile=="+mytestFile.createNewFile());
		//boolean	mkdirs()  创建新的文件夹
		//System.out.println("testFile--mkdirs=="+testFile.mkdirs());
		//boolean	delete()  删除文件/空文件夹
		//1.删除文件
		//System.out.println("删除文件mytestFile--delete=="+mytestFile.delete());
		//2.删除文件夹【没有子文件/子文件夹】
		//System.out.println("删除文件夹testFile--delete=="+testFile.delete());
		//3.删除文件夹【有子文件/子文件夹】[删除文件夹的时候要将该文件夹下的文件和子文件夹全部删除]
		//System.out.println("删除文件夹testFile--delete=="+testFile.delete());
		//boolean	canRead() 判断文件是否可读
		//System.out.println("判断文件是否可读mytestFile--canRead=="+mytestFile.canRead());
		//boolean	canWrite() 判断文件是否可写 
		//System.out.println("判断文件是否可写 mytestFile--canWrite=="+mytestFile.canWrite());
		//boolean	isHidden() 判断文件是否为隐藏文件。
		//System.out.println("判断文件是否为隐藏文件 mytestFile--isHidden=="+mytestFile.isHidden());
		//boolean	isFile() 判断文件对象是否为普通文件。 
		//System.out.println("判断文件对象是否为普通文件 mytestFile--isFile=="+mytestFile.isFile());
		//boolean	isDirectory() 判断文件对象是否为目录。
		//System.out.println("判断文件对象是否为普通文件 mytestFile--isDirectory=="+mytestFile.isDirectory());
		//String	getPath() 得到文件对象的路径名字符串。 
		//System.out.println("到文件对象的路径名字符串 mytestFile--getPath=="+mytestFile.getPath());
		//System.out.println("到文件对象的路径名字符串 testFile--getPath=="+testFile.getPath());
		//String	getName() 得到文件对象所表示的文件或目录的名称。
		//System.out.println("得到文件对象所表示的文件或目录的名称 mytestFile--getName=="+mytestFile.getName());
		//System.out.println("得到文件对象所表示的文件或目录的名称testFile--getName=="+testFile.getName());
		//String	getParent() 得到文件对象所表示的路径的父目录路径 
		//System.out.println("得到文件对象所表示的路径的父目录路径 mytestFile--getParent=="+mytestFile.getParent());
		//System.out.println("得到文件对象所表示的路径的父目录路径testFile--getParent=="+testFile.getParent());
		//long	length() 得到文件对象所表示的文件的长度。[单位字节]
		//System.out.println("得到文件对象所表示的文件的长度 mytestFile--length=="+mytestFile.length());
		//long	lastModified() 得到文件对象所表示的文件上次修改的时间。 [单位毫秒数]
		//System.out.println("得到文件对象所表示的文件上次修改的时间 mytestFile--lastModified=="+mytestFile.lastModified());
		Date  date=new Date(mytestFile.lastModified());
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd E HH:mm");
		String newtime=sdf.format(date);
		System.out.println(newtime);
		
		
	}

}
import java.text.SimpleDateFormat;
import java.util.Date;

public class FileDemo4 {

	public static void main(String[] args)throws Exception {
		//File类的实例方法
		/*
		//String[]	list() 得到文件对象代表的文件夹中的所有文件和文件夹名称返回一个字符串数组
		String testpath="F:"+File.separator+"20201201";
		File  dirFile=new File(testpath);
		String names[]=dirFile.list();
		for(String name:names){
			System.out.println(name);
		}
		*/
		
		//File[]	listFiles() 得到文件对象代表的文件夹中的所有文件和文件夹的文件对象,返回一个文件对象数组
		String testpath="F:"+File.separator+"20201201";
		File  dirFile=new File(testpath);
		File  files[]=dirFile.listFiles();
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd E HH:mm");
		for(File  file:files){
			//得到子文件/子文件夹的名称
			String name=file.getName();
			//得到子文件/子文件夹的最后修改时间
			Date  date=new Date(file.lastModified());
			String time=sdf.format(date);
			String  type="";
			long  size=0;
			if(file.isDirectory()){
				type="文件夹";
			}else{
				//得到文件的后缀名
				String  houzhuiming=name.substring(name.lastIndexOf("."));
				//判定文件的类型
				if(houzhuiming.equalsIgnoreCase(".txt")){
					type="文本文档";
				}
				if(houzhuiming.equalsIgnoreCase(".zip")){
					type="WinRAR ZIP 压缩文件";
				}
				if(houzhuiming.equalsIgnoreCase(".exe")){
					type="应用程序";
				}
				//得到文件大小
				size=file.length();
			}
			System.out.println(name+"\t\t"+time+"\t\t"+type+"\t"+size+"字节");
		}
		//得到指定文件夹中指定类型的文件
		//例如: F:\20201201\java基础\20201204Java(4)\code  文件夹中 所有的java源文件
		
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值