import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
public class FileDemo {
public static void main(String[] args) {
File file=new File("Data.txt"); //未指定路径
//File file=new File("../../Data.txt"); //文件创建在上一级的上一级
if(file.exists()){
System.out.println("是否是文件:"+file.isFile()); //判断是否是一个已存在的的文件
}
else{
System.out.println("文件不存在");
try {
file.createNewFile(); //创建
System.out.println("文件已及成功创建");
File rename=new File("data1.txt"); //创建空文件,不是实质性文件
file.renameTo(rename); //将file重命名为 data1
//file.delete(); //文件删除
} catch (IOException e) {
System.out.println("文件无法创建");
}
}
File dir=new File("wade");
if(dir.mkdir()){//创建文件夹
System.out.println("文件夹创建成功");
}
else{
if(dir.exists()){
System.out.println("文件夹以及创建");
}
else{
System.out.println("文件夹创建失败");
}
}
File dir1=new File("wade1");
dir.renameTo(dir1); //文件夹重命名
dir.delete(); //文件夹的删除,必须是空文件夹
//读取文件名
System.out.println(file.getName());
//读取文件路径
System.out.println(file.getPath());
//读取文件绝对路径,从根目录开始
System.out.println(file.getAbsolutePath());
//读取文件的父级路径
System.out.println(new File (file.getAbsolutePath()).getParent()); //完整路径,防止null
//读取文件大小
System.out.println(file.length());
//判断文件是否被隐藏
System.out.println(file.isHidden());
//判断文件是否可读
System.out.println(file.canRead());
//判断文件是否可写
System.out.println(file.canWrite());
//判断是否是文件夹
System.out.println(file.isDirectory());
//文件属性设置
//将文件设置为可写
file.setWritable(true);
//设置文件可读
file.setReadable(true);
//设置为只读
file.setReadOnly();
//遍历文件夹,另写方法
printFiles(dir);
//文件的简单读写
if(file.exists()){
System.err.println("文件存在");
try {
//创建用于文件输入的三个流
FileInputStream fis=new FileInputStream(file); //定义输入流,字节流
//输入流的Reader,字符流,UTF-8为指定编码,防止乱码
InputStreamReader is2=new InputStreamReader(fis,"UTF-8");
BufferedReader br=new BufferedReader(is2); //带有缓冲区的Reader
String line ; //临时存放读取到的数据
while((line=br.readLine())!=null){ //文件未结束
System.out.println(line);
}
br.close();
is2.close();
fis.close(); //关闭三个流
} catch (FileNotFoundException e) { //输入流异常
e.printStackTrace();
} catch (UnsupportedEncodingException e) { //InputStreamReader异常
e.printStackTrace();
} catch (IOException e) { //读取异常抛出
e.printStackTrace();
}
//创建输出流
try {
FileOutputStream fos=new FileOutputStream(file);
OutputStreamWriter osw=new OutputStreamWriter(fos, "UTF-8");
BufferedWriter bw=new BufferedWriter(osw);
bw.write("wade\n"); //写入数据
bw.write("kobe\n");
bw.write("james\n"); //此种写入会覆盖文件中原有的内容
bw.close();
osw.close();
fos.close();
System.out.println("写入完成");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) { //写入异常抛出
e.printStackTrace();
}
}
}
private static void printFiles(File dir) {
//遍历文件夹
if(dir.isDirectory())
{ //如果是目录
File next[]=dir.listFiles(); //列出文件名字,是一个文件数组
for(int i=0;i<next.length;i++)
{
if(next[i].isFile())
{ //判断是否文件
System.out.println(next[i].getName()); //输出名字
}
else{
System.out.println(next[i].getName());
printFiles(next[i]); //调用自身
}
}
}
}
}
极客学院 java 文件的操作 代码笔记
最新推荐文章于 2016-08-26 08:41:34 发布