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;
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的路径==E:\\java
//Bai\\ziliao\\20201230java(22)");//java中的输入输出流1.docx的路径==E:\java
//Bai\ziliao\20201230java(22)
//不同的操作系统使用的代表文件路径的分隔符号是不同的
//例如 : windows -- \ liunx --- /
//为了保证我们所编写的java程序能够正常的运行在不同的平台上,所以java将代表文件路径
//的分隔符号,封装成一个静态变量。
//在不同的的平台上,这个静态变量就代表当前系统的文件路径的分隔符号
//所以我们以后再编写文件路径的时候,要尽量使用File类提供的表示分隔符字符的静态变量
System.out.println("java中的输入输出流1.docx的路径
//==E:"+File.separator+"java
//Bai"+File.separator+"ziliao"+File.separator+"20201230java(22)");//java中的
//输入输出流1.docx的路径==E:\java Bai\ziliao\20201230java(22)
}
}
构造方法:
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的构造方法
//File(String pathname) 通过给定的文件路径字符串创建新的 File实例。
//文件夹
String test="E:"+File.separator+"java
Bai"+File.separator+"eclipse"+File.separator+"test";
File testFile=new File(test);
//利用eclipse-jee.zip文件路径创建表示eclipse-jee.zip文件的File对象
//文件
String mytest="E:"+File.separator+"java
Bai"+File.separator+"eclipse"+File.separator+"mytest.txt";
File mytestFile=new File(mytest);
//File(String parent, String child) 通过给定的文件位置字符串和给定的文件名称字符
//串创建新的 File实例。
//String parent---保存文件所在文件夹的路径
//String child ---文件名称
String parent="E:"+File.separator+"java Bai"+File.separator+"eclipse";
String child="test";
File testexlipse2=new File(parent,child);
//File(File parent, String child) 通过给定的文件位置File对象和给定的文件名称字符
//串创建新的 File实例。
//File parent---保存文件所在文件夹的路径[利用第一个File构造方法]
//String child ---文件名称
//创建eclipse-jee.zip文件的File对象
File parent1=new File("E:"+File.separator+"java
Bai"+File.separator+"eclipse");
String child1="test";
File testduixiang=new File(parent1,child1);
}
}
注意:文件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;
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 tesrPath="E:"+File.separator+"java
Bai"+File.separator+"eclipse"+File.separator+"test";
File testFile=new File(tesrPath);
System.out.println("exits=="+testFile.exists());//false
String mytest="E:"+File.separator+"java
Bai"+File.separator+"eclipse"+File.separator+"mytest.txt";
File mytestFile=new File(mytest);
System.out.println("exits=="+mytestFile.exists());//false
//boolean createNewFile() 创建新文件
//System.out.println("mytestfile--creat=="+mytestFile.createNewFile());
//boolean mkdirs() 创建新的文件夹
//System.out.println("test--creat=="+testFile.mkdirs());
//boolean delete() 删除文件/空文件夹
//1.删除文件
//System.out.println("mytestfile--delet=="+mytestFile.delete());
//2.删除文件夹【没有子文件/子文件夹】
//System.out.println("testfile--delete=="+testFile.delete());
//3.删除文件夹【有子文件/子文件夹】[删除文件夹的时候要将该文件夹下的文件和子文
//件夹全部删除]
//boolean canRead() 判断文件是否可读
System.out.println("canread=="+testFile.canRead());//true
//boolean canWrite() 判断文件是否可写
System.out.println("canWrite=="+testFile.canWrite());//true
//boolean isHidden() 判断文件是否为隐藏文件。
System.out.println("isHidden=="+testFile.isHidden());//false
//boolean isFile() 判断文件对象是否为普通文件。 【文件】
System.out.println("isFile=="+testFile.isFile());//false
//boolean isDirectory() 判断文件对象是否为目录。【文件夹】
System.out.println("isDirectory=="+testFile.isDirectory());//true
//String getPath() 得到文件对象的路径名字符串。
System.out.println("testFile--getPath=="+testFile.getPath());//E:\java
//Bai\eclipse\test
//String getName() 得到文件对象所表示的文件或目录的名称。
System.out.println("testFile--getName=="+testFile.getName());//test
//String getParent() 得到文件对象所表示的路径的父目录路径
System.out.println("testFile--Partent=="+testFile.getParent());//E:\java
// Bai\eclipse
//long length() 得到文件对象所表示的文件的长度。[单位字节]
System.out.println("testFile--length=="+testFile.length());//0
//long lastModified() 得到文件对象所表示的文件上次修改的时间。 [单位毫秒数]
System.out.println("testFile--
lastModified=="+testFile.lastModified());//1609377427436
//改成熟知的格式
Date d1=new Date(testFile.lastModified());
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd E HH:mm");
sdf.format(d1);
System.out.println(sdf.format(d1));
}
}
package com.wangxing.filedemo;
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 exlipsepath="E:"+File.separator+"java Bai"+File.separator+"eclipse";
File exlipseFile=new File(exlipsepath);
String str1[]=exlipseFile.list();
for(String st2:str1){
System.out.println(st2);
}
*/
//File[] listFiles() 得到文件对象代表的文件夹中的所有文件和文件夹的文件对象,返
//回一个文件对象数组
String exlipsepath="E:"+File.separator+"java Bai"+File.separator+"eclipse";
File exlipseFile=new File(exlipsepath);
File exlipse[]=exlipseFile.listFiles();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd E HH:mm");
for(File ex1:exlipse){
//得到子文件/子文件夹的名称
String name=ex1.getName();
//得到子文件/子文件夹的最后修改时间
Date date=new Date(ex1.lastModified());
String time=sdf.format(date);
String type="";
if(ex1.isDirectory()){
type="文件夹";
}else{
//得到文件的后缀名
String leixing=name.substring(name.lastIndexOf("."));
if(leixing.equalsIgnoreCase(".xml")){
type="xml文件";
}
if(leixing.equalsIgnoreCase(".exe")){
type="运行程序";
}
if(leixing.equalsIgnoreCase(".ini")){
type="配置设置";
}
if(leixing.equalsIgnoreCase(".zip")){}
type="压缩文件";
}
//得到文件的大小
int size=name.length();
System.out.println(name+"\t"+time+"\t"+type+"\t"+size+"字节");
}
}
}