- File类不包含读写文件内容的方法。封装了文件或者路径的属性。不包括创建文件和读写
- import java.io.File;
- 类中的方法:
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class FileTest {
public static void main(String[] args) throws IOException {
File file1 = new File("D:\\Git\\test\\hello.cpp"); //创建对象,并不创建文件
File file2 = new File("D:/Git/test/test_2.txt"); //斜杠可以,反斜杠需要两个,windows下目录表示用一个反斜杠。
File directory = new File("D:/Git/test");
//File file3 = new File("../Calculator.java"); //不能这样表示
File file3 = new File("src/chapter_9/Calculator1.java"); //当前目录是java_learning,相对路径的起始处无斜杆"/"
File file4 = new File("D:/Git/test/1212.txt");
System.out.println(file1.exists()); //文件判断是否存在
System.out.println(file1.canRead()); //是否可读
System.out.println(file1.canWrite()); //是否可写
System.out.println(file2.isFile()); //是否是文件
System.out.println(file2.isDirectory()); //是否是目录
System.out.println(directory.exists()); //目录是否存在
System.out.println(directory.isDirectory()); //是否是目录
System.out.println(file1.isAbsolute()); //是否绝对路径
System.out.println(file3.exists()); //存在? -->false-->java中文件相对路径的表示:找项目空间project
System.out.println(file3.isAbsolute()); //绝对路径?false
System.out.println(file3.isHidden());
System.out.println(file3.getAbsolutePath()); //返回绝对路径
System.out.println(file3.getCanonicalPath()); //出错,原因:在main函数后添加throws IOException,
//并导入类import java.io.IOException;
System.out.println(file3.getPath()); //返回从项目空间开始的路径,相对路径
System.out.println(file1.getName()); //返回文件名
System.out.println(directory.getName()); //返回文件夹名
System.out.println(file1.getParent()); //父目录
System.out.println(new Date(file1.lastModified())); //返回具体的修改时间,而不是long型。
System.out.println(file1.length()); //文件大小:70字节
System.out.println(directory.length()); //返回目录大小
System.out.println(directory.listFiles());
// System.out.println(file4.delete()); //删除该文件
System.out.println(file4.renameTo(file3));
//a.txt重命名为b.txt.
//在重命名前,如果已存在b.txt,则重命名不会成功,方法执行结果返回false
//必须确保目标文件在重命名之前不存在,才有可能成功
//重命名后:文件转到了file3所在的文件夹
}
}
- Java I/O类
向文件中写数据:java.io.PrintWriter
public static void main(String[] args) throws Exception{
File file = new File("scores.txt");
if(file.exists()){
System.out.println("File already exists"); //若已存在,则会删除文件中所有内容。
System.exit(0);
}
//creat a file
PrintWriter output = new PrintWriter(file); //创建文件所在位置在当前工作目录下:java_learning下
output.print("hello world John T Smith"); //向文件中写内容
output.println(90);
output.println(80);
output.close();
向文件中读数据:Scanner:java.util.Scanner
Scanner input = new Scanner(file object);
直接这样写会出错,改正:在main后throws Exception即可。
在文件中有内容:34 567
int intValue = input.nextInt(); //内容:34
String line = input.nextLine(); //内容:" 567",第一位是空格。