java中的输入输出流1
输入输出流---对文件进行读【打开】写【修改】操作的java类库。
文件---把数据持久化到磁盘的载体
---文件的组成
1.文件的属性【文件名称,文件大小,文件类型,创建时间.....】
2.文件内容【输入输出流】
我们要想通过java提供的输入输出流读写文件中的内容就得先学会操作文件。
Java中为我们提供了一个专门操作文件的java类--java.io.File类
1.File类的对象创建和常用方法?
File类的定义 public class File
File类的静态成员变量
static String |
pathSeparator 与系统相关的路径分隔符字符,为方便起见,表示为字符串。 |
static char |
pathSeparatorChar 与系统相关的路径分隔符。 |
static String |
separator 与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。 |
static char |
separatorChar 与系统相关的默认名称分隔符。 |
package com.wangxing.filedemo;
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.pathSeparator);// ;
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
//System.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;
import java.io.File;
public class FileDemo2 {
public static void main(String args[]){
//File类的构造方法
//1.File(String pathname)通过给定的文件路径字符串创建 新的 File实例
//String pathname----文件/文件夹路径字符串
//利用eclipse文件夹路径创建表示eclipse文件夹的File对象
String eclipsepath="F:"+File.separator+"20201201"+File.separator+"test";
File eclipseFile1=new File(eclipsepath);
File eclipseFile2=new File("F:"+File.separator+"20201201"+File.separator+"test");
//利用eclipse--jee.zip文件路径创建表示eclipse--jee.zip文件的File对象
String eclipsejeezip="F:"+File.separator+"20201201"+File.separator+"mytest.txt";
File eclippseFile3=new File(eclipsejeezip);
File eclipseFile4=new File("F:"+File.separator+"20201201"+File.separator+"mytest.txt");
//2.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 eclipsejeezipFile=new File(parent,child);
//3.File(File parent ,String child)通过给定的文件位置File对象和给定的文件名称字符串创建新的File实例
//File parent---保存文件所在文件夹的路径[利用第一个File构造方法]
//String child---文件名称
//创建eclipse-jee.zip文件的File对象
File parent1=new File("F:"+File.separator+"20201201");
String eclipseFile="user.doc";
File eclipsejeezipFile2=new File(parent,eclipseFile);
}
}
注意:文件File类的对象创建以后,不会生成实际的文件。
实例方法
boolean |
exists() 判断路径名表示的文件或目录是否存在。 |
|||
boolean |
createNewFile() 创建新文件 |
|||
boolean |
mkdirs() 创建新的文件夹 |
|||
|
||||
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);
}
}
package com.wangxing.filedemo.test1;
import java.io.File;
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源文件
}
}