文件基础
那什么是文件流呢?
如何理解?
1.我们要将文件中的数据通过输入流传到程序(内存)中,其逆过程就是输出流。
2.形象化理解
创建文件
如果你对文件的输入输出流已经有了基本的认知,那么我们就结合以上知识来创建文件
创建文件的三种方式
1.new File(String pathname)
2.new File(File parent,String child)根据父目录文件+子路径构建
3.new File(String parent,String child)//根据父目录+子路径构建
方式一
import java.io.File;
import java.io.IOException;
//演示创建文件
public class FileCreate01 {
public static void main(String[] args) {
create01();
}
//方式一 new File(String pathname)
public static void create01(){
String filePath="e:\\news1.txt";
File file1=new File(filePath);
try {
file1.createNewFile();
System.out.println("文件一创建成功");
} catch (IOException e) {
e.printStackTrace();
}
}
1.直接写一个static方法,直接调用
2.创建一个文件filePath,注意必须使用createNewFile()方法,原因如下
3.创建文件时可能会发生IOException异常,直接try…catch…
4.打印提示信息,表明文件创建成功,如下图
方式二
//方式二 new File(File parent,String child)根据父目录文件+子路径构建
//e:\\news2.txt
public static void create02(){
File parentFile=new File("e:\\");
String fileName1="news2.txt";
File file2=new File(parentFile,fileName1);
try {
file2.createNewFile();
System.out.println("文件二创建成功");
} catch (IOException e) {
e.printStackTrace();
}
}
1.其实方式二只是将一个完整的路径进行了拆分,分成父目录文件和子路径两部分,但本质不变
方式三
//方式三 new File(String parent,String child)//根据父目录+子路径构建
public static void create03(){
String parentPath="e:\\";
String fileName2="news3.txt";
File file3=new File(parentPath,fileName2);
try {
file3.createNewFile();
System.out.println("文件三创建成功");
} catch (IOException e) {
e.printStackTrace();
}
}
1.方式三与方式二也只是形参发生了略微的变化,由刚才的父目录文件变成了父目录,父目录本质就是文件夹(是当前文件夹的上一层文件夹)
获取文件信息
代码如下–>
import java.io.File;
//目的:获取文件信息
public class FileCreate02 {
public static void main(String[] args) {
info();
}
public static void info(){
//先创建文件对象
File file1=new File("e:\\news1.txt");
//调用相应的方法,得到对应信息
System.out.println("文件名="+file1.getName());
System.out.println("绝对路径="+file1.getAbsolutePath());
System.out.println("文件父目录="+file1.getParent());
System.out.println("文件大小(字节)="+file1.length());//一个汉字三个字节,一个字母一个字节
System.out.println("文件是否存在="+ file1.exists());
System.out.println("是否为文件="+file1.isFile());
System.out.println("是否为目录="+file1.isDirectory());
}
}
输出结果如下
1.判断文件存在,是否为文件,是否为目录的方法返回值都是boolean
2.文件大小此处为0,(因为我什么都没写),如果写了,请注意,字母算一个字****符,汉字算三个!
—————————————————————————————————
目录操作及文件删除
1.mkdir()创建一级目录-------boolean
2.mkdirs()创建多级目录--------boolean
判断d:\news1.txt是否存在,存在就删除,不存在显示提示信息
import java.io.File;
import java.io.IOException;
//目的:文件目录的操作与删除
public class FileCreate03 {
public static void main(String[] args) {
m1();
}
//判断d:\\news1.txt是否存在,存在就删除
public static void m1(){
String filename="e:\\news1.txt";
File file=new File(filename);
if(file.exists()){
if(file.delete())
System.out.println("删除成功");
else
System.out.println("删除失败");
}else{
System.out.println("文件不存在");
}
}
注意:delete()方法负责文件的删除
判断e:\news4.txt是否存在,存在提示已存在,不存在则创建
public static void m2(){
String directoryPath="e:\\news4.txt";
File file=new File(directoryPath);
if(file.exists()){
System.out.println("改文件存在");
}else{
if(file.mkdirs()){//创建一级目录使用mkdir(),创建多级目录使用mkdirs()
System.out.println("创建成功");
}else{
System.out.println("创建失败");
}
}
}
}
小总结
1.以上就是文件的入门知识啦,首先了解什么是文件,它的作用是什么,如何创建文件,获取文件信息,对目录进行操作…
2.文件这块的内容并不涉及太多编程思维,更多的是需要理解原理,会使用一些常见的方法
3.下一期我们将深入学习IO流,包括字符输入流,字符输出流,字节输入流,字节输出流…