File需要实例化,参数写入指定的文件位置
File file = new File("./2391641173/FileRecv");
File类的方法也有很多。
返回file对象的父目录文件路径->file.getParent()
返回file对象的纯文件名称->file.getName()
返回file对象的文件路径->file.getPath()
返回file对象的绝对路径->file.getAbsolutePath()
返回file对象修饰过的绝对路径->file.getCanonicalPath()
import java.io.File;
import java.io.IOException;
public class Demo1 {
public static void main(String[] args) throws IOException {
File file = new File("./2391641173/FileRecv");
System.out.println(file.getParent());//返回f对象的父目录文件路径
System.out.println(file.getName());//返回f对象的纯文件名称
System.out.println(file.getPath());//返回f对象的文件路径
System.out.println(file.getAbsolutePath());//返回f对象的绝对路径
System.out.println(file.getCanonicalPath());//返回f对象修饰过的绝对路径
}
}
判断文件是否存在->f.exists()
判断文件是否为目录->f.isDirectory()
判断是否为文件->f.isFile()
返回类型为boolean
如果不存在指定的文件
那么就创建一个文件-> f.createNewFile()
具体代码为:
import java.io.File;
import java.io.IOException;
public class Demo2 {
public static void main(String[] args) throws IOException {
File f = new File("./test.txt");
//判断文件是否存在
System.out.println(f.exists());
//判断文件是否为目录
System.out.println(f.isDirectory());
//判断是否为文件
System.out.println(f.isFile());
//创建文件
f.createNewFile();
System.out.println("============");
//判断文件是否存在
System.out.println(f.exists());
//判断文件是否为目录
System.out.println(f.isDirectory());
//判断是否为文件
System.out.println(f.isFile());
}
}
f.delete();
import java.io.File;
public class Demo3 {
public static void main(String[] args) {
File f = new File("./test.txt");
f.delete();
}
}
f.mkdir() 创建一个单层目录
f.mkdirs() 创建一个多层目录
具体代码为:
import java.io.File;
//创建目录
public class Demo4 {
public static void main(String[] args) {
File f = new File("./testDir");
f.mkdir();//创建单层目录
File f1 = new File("./demoDir/aaa/bbb");
f1.mkdirs();//创建多层目录
}
}
需要实例化两个File类 一个为srcFile 作为原名 一个为destFile作为新名字 ,使用srcFile.renameTo(destFlie)
import java.io.File;
//文件重命名
public class Demo5 {
public static void main(String[] args) {
File srcF = new File("./demo.text");//源头
File destF = new File("./demo1.text");//去处
srcF.renameTo(destF);//重命名
}
}
使用f.list()
代码如下:
import java.io.File;
import java.util.Arrays;
public class Demo6 {
public static void main(String[] args) {
File f = new File("./test.txt");
String[] results = f.list();//目录
System.out.println(Arrays.toString(results));//显示目录下的所有文件名
}
}
InputStream是读一个文件,使用字节流来读文件,并且这个类是一个抽象类,所有不能实例化,只能实例化已经实现了这个类的类(FileInputStream)
使用.read()来读取一个字节,如果为-1说明文件中的内容已经读完了。
读文件的时候有三个操作,1.打开文件 2.读文件 3.关闭文件
import java.io.*;
//读一个文件 用字节流读文件 打开 读文件 关闭
public class Demo7 {
public static void main(String[] args) throws IOException {
//打开文件
InputStream inputStream = new FileInputStream("./test.txt");//InputStream是抽象类 不能实例化
while(true){
int tmp = inputStream.read();//读文件
if(tmp == -1){
//为-1说明读完了 读文件读出的是字节码
break;
}
System.out.println(tmp);
}
inputStream.close();//文件关闭
}
}
OutputStream是写一个文件,使用字节流来写文件,并且这个类是一个抽象类,所有不能实例化,只能实例化已经实现了这个类的类(FileOutputStream)
使用.writer来写一个字节的文件
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
//写文件 字节流写文件
public class Demo8 {
public static void main(String[] args) throws IOException {
OutputStream outputStream = new FileOutputStream("./test.txt");
//使用outputStream写文件的时候 打开文件成功后 会把文件原来的内容清空
outputStream.write(97);
outputStream.write(98);
outputStream.write(99);
outputStream.close();
}
}