一、File类:
1、java.io下的File类
(1)、凡是与输入、输出相关的类、接口等都定义在java.io包下。
(2)、File是一个类,可以有构造器创建其对象。此对象对应着一个文件(.txt, .avi, .doc, .ppt, .mp3, .jpg)等等。
(3)、File类对象是与平台无关的。
(4)、File中的对象,仅仅涉及到如何创建、删除、重命名等等;只要涉及文件内容的如:修改、读取等,做不了,需要IO流来完成。
(5)、File类的对象常作为IO流的具体类的构造器的形参。
2、
(1)、File类的使用格式:File file=new File(字符串类型的路径);
(2)、路径:
绝对路径:包含盘符在内的完整的文件路径
相对路径:相对于当前文件目录的文件路径
(3)、File file=new File("d:\\io\\helloworld.txt"); //正常情况下路径为:"d:\io\helloworld.txt";但此处因为是java语句,具有跨平台性,所以应该加双斜线或者是一个方向相反的斜线。
代码实例:
package com.atguigu.File;
import java.io.File;
import org.junit.Test;
/*
* java.io下的File类
* 1、凡是与输入、输出相关的类、接口等都定义在java.io包下。
* 2、File是一个类,可以有构造器创建其对象。此对象对应着一个文件( .txt, .avi, .doc, .ppt, .mp3, .jpg)或
* 3、File类对象是与平台无关的。
* 4、File中的对象,仅仅涉及到如何创建、删除、重命名等等;只要涉及文件内容的如:修改、读取等,做不了,需要IO流来完成。
* 5、File类的对象常作为IO流的具体类的构造器的形参。
* */
public class TestFile {
/*
* 路径
* 绝对路径:包含盘符在内的完整的文件路径
* 相对路径:相对于当前文件目录的文件路径
* */
@Test
public void test1() {
File file=new File("d:\\io\\helloworld.txt");//正常情况下路径为:"d:\io\helloworld.txt";但此处因为是java语句,具有跨平台性,所以应该加双斜线或者是一个方向相反的斜线。
File file2=new File("hello.txt"); //同级目录下的路径
}
}
二、File类的使用:
File类的方法:
package com.atguigu.File;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import org.junit.Test;
/*
* java.io下的File类
* 1、凡是与输入、输出相关的类、接口等都定义在java.io包下。
* 2、File是一个类,可以有构造器创建其对象。此对象对应着一个文件( .txt, .avi, .doc, .ppt, .mp3, .jpg)或
* 3、File类对象是与平台无关的。
* 4、File中的对象,仅仅涉及到如何创建、删除、重命名等等;只要涉及文件内容的如:修改、读取等,做不了,需要IO流来完成。
* 5、File类的对象常作为IO流的具体类的构造器的形参。
* */
public class TestFile {
/*
* createNewFile
* delete()
* mkDir():创建一个文件目录。只有在上层文件目录存在的情况下才能返回true。
* mkDirs():创建一个文件目录。若上层文件目录不存在,一并创建。
* list()
* listFiles()
*
* */
@Test
public void test3() throws IOException {
File file1=new File("d:/io/hello.txt");
System.out.println(file1.delete());
if(!file1.exists()) { //判断是否存在,不存在则创建
boolean b=file1.createNewFile();//创建文件中的文档
System.out.println(b);
}
File file2=new File("d:\\io2\\io3\\io5");
if(!file2.exists()) {
System.out.println(file2.mkdir()); //创建文件目录
}
File file3=new File("d:\\teach");//将teach中的所有内容遍历出来。
String[] strs=file3.list();
for(int i=0;i<strs.length;i++) {
System.out.println(strs[i]);
}
File[] files=file3.listFiles(); //只遍历文件名
for(int i=0;i<files.length;i++) {
System.out.println(files[i].getName());
}
}
@Test
public void test2() {
File file1=new File("d:/io/hello.txt");
File file2=new File("hello1.txt");
File file3=new File("d:\\io\\io1");
File file4=new File("d:\\ios");
System.out.println(file1.exists());
System.out.println(file1.canWrite());
System.out.println(file1.canRead());
System.out.println(file1.isFile());
System.out.println(file1.isDirectory());
System.out.println(file1.lastModified());//本来显示的全是毫秒数,加一个new Date()后就可以显示很好看的时间。
System.out.println(file1.length());
}
/*
* 路径
* 绝对路径:包含盘符在内的完整的文件路径
* 相对路径:相对于当前文件目录的文件路径
* */
@Test
public void test1() {
File file1=new File("d:/io/helloworld.txt");//hu'e'dui'lu'jin'h //正常情况下路径为:"d:\io\helloworld.txt";但此处因为是java语句,具有跨平台性,所以应该加双斜线或者是一个方向相反的斜线。
File file2=new File("hello.txt"); //同级目录下的路径
File file3=new File("d:\\io\\io1"); //文件
File file4=new File("d:\\io2");
System.out.println(file1.getName()); //获取文件的名
System.out.println(file1.getPath()); //获取文件路径
System.out.println(file1.getAbsolutePath()); //获取绝对路径
System.out.println(file1.getAbsoluteFile()); //获取绝对文件名
System.out.println(file1.getParent()); //父文件路径
System.out.println("**************************");
System.out.println(file3.getName()); //获取文件的名
System.out.println(file3.getPath()); //获取文件路径
System.out.println(file3.getAbsolutePath()); //获取绝对路径
System.out.println(file3.getAbsoluteFile()); //获取绝对文件名
System.out.println(file3.getParent()); //父文件路径
//renameTo(File newName):返回boolean类型
//file1.renameTo(file2):file重命名为file2,要求:file1文件一定存在,file2一定不存在。
// boolean b=file1.renameTo(file2);
// System.out.println(b);
boolean b1=file4.renameTo(file3);
System.out.println(b1);
}
}
三、IO流的概述: