新建文件
/* 下面是在当前文件目录下(即工程根目录下)创建hello.txt文件 */
File file = new File('hello.txt');
判断是文件还是目录
file.isFile() /* file是文件 */
file.isDirectory() /* file是目录 */
判断文件是否存在
file.exsits()
文件的 创建、删除、重命名
针对文件的重命名:新建文件2,将文件1的文件名重命名为文件2的文件名,可达到文件移动的目的
注意:对于文件的移动,文件必须处于同一分区,例如某文件在C盘中移动,而不能从C盘移动到D盘。如果要移动到不同的分区,需要使用文件的拷贝,而不是重命名。
file.createNewFile(); /* 创建文件 */
file.delete(); /* 删除文件 */
File nameTo = new File("new hello.txt");
file.renameTo(nameTo); /* 将file文件重命名 */
file类既可以表示文件也可以表示文件夹
/* 创建一个文件对象 */
File folder = new File("my folder");
/* 创建一个文件夹 */
folder.mkdir(); /* 返回true 代表文件创建成功 返回false 代表文件创建失败 */
folder.mkdirs();
mkdir和mkdirs的区别:
mkdir:只能创建一级文件夹,上级文件夹必须存在
mkdirs:能够创建多级文件夹,不要求上级文件夹必须存在
文件夹的重命名:文件夹的重命名必须处于同一分区当中
File folder = new File("my new folder");
File newFolder = new File("my new folder-new");
folder.renameTo(newFolder);
文件夹的删除:delete只能删除空文件夹
File folder = new File("my new folder-new/one/two/three");
folder.delete() /* 返回true 删除成功 返回false 删除失败 */
文件属性的读取
File file = new File("test.txt");
// 判断文件是否存在
file.exsits()
// 读取文件名称
file.getName()
// 读取文件路径
file.getPath()
// 读取文件绝对路径
file.getAbsolutePath()
// 读取文件父级路径(file是相对路径,如何利用相对路径获取其上一级路径呢?)
new FIle(file.getAbsolutePath()).getParent()
// 读取文件大小(file.length()方法的返回是按照字节来返回的,,返回类型是long类型)
// 在硬盘上,字节转化为KB是除以1000
(long)file.length()/1000 + "KB"
// 判断文件是否被隐藏
file.isHidden();
// 判断文件是否可读
file.canRead();
// 判断文件是否可写
file.canWrite();
// 判断文件是否为文件夹
file.isDirectory();
文件属性的设置
// 将文件设定为可写(传入参数:true 设定为可写,false 设定为不可写)
file.setWritable(true);
// 将文件设定为可读(传入参数:true 设定为只读,false 设定为不可读)
file.setReadable(true);
// 将文件设定为只读
file.setReadOnly();
遍历文件夹
public class OutputDirectory {
public static void main(String[] args) {
printFiles(new File("my new folder-new/one/two/three"), 1);
}
public static void pritFiles(File dir, int tab) {
if(dir.isDirectory()) {
// 包含当前目录当中所有的子文件夹和子文件
File next[] = dir.listFIles();
for(int i = 0; i < next.length(); i++) {
for(int j = 0; j < tab; j++) {
System.out.print("|--");
}
System.out.println( next[i].getName());
if(next[i].isDirectory()) {
printFIles(next[i], tab++);
}
}
}
}
}
文件的简单读写
public class ReadFile {
public static void main(String[] args) {
File file = new File("test.txt");
if (file.isExits()) {
System.out.println("file is exist");
try {
// 1、创建文件输入流 获取文件输入流
FileInputStream fis = new FileInputStream(file);
// 2、将输入流包装成InputStreamReader
// fis是一个字节流,isr是一个字符流,在进行转换时容易出现乱码,所有需要添加utf-8编码,防止乱码的出现
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
// 3、创建一个带有 缓冲区 的reader
BufferedReader br = new BufferedReader(isr);
// 读取 文件内容并输出
String line;
while((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
isr.close();
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
File newFile = new File("newtext.txt");
FileOutputStream fos = new FileOutputStream(newFile);
OutputStreamWriter osw = new OutputStreamWriter(fos, "utf-8");
BufferedWriter bw = new BufferedWriter(osw);
bw.write("我正在写出文件内容至文件当中\n");
bw.writer("我正在书写内容\n");
// 关闭输出流, 先打开的后关闭,后打开的先关闭
fos.close();
osw.close();
bw.close();
} catch(FileNotFoundException e) {
e.printStackTrace();
} catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}