Java学习 第五章 java本地文件操作
1、File类,文件的创建、删除、重命名
File 是属于java.io包的。
创建一个HelloFile.java文件,创建File对象;
import java.io.File; import java.io.IOException; public class HelloFile { public static void main(String[] args) { // 创建一个文件对象 File file = new File("hello.txt"); //File file = new File("../../hello.txt"); // 文件是否存在 if(file.exists()) { //文件 file.isFile(); //路径(文件夹) file.isDirectory(); //文件重命名,文件夹结构必须处于同一个分区 File nameto = new File("src/new Hello.txt"); file.renameTo(nameto); //删除文件 //file.delete(); }else { try { file.createNewFile(); System.out.println("文件创建成功"); } catch (IOException e) { // TODO Auto-generated catch block System.out.println("无法创建文件"); } } } }
2、文件夹的创建、重命名、删除
import java.io.File; public class HelloFolder { public static void main(String[] args) { File folder = new File("my new folder"); //File folder = new File("my new folder/one/two/three"); //folder.mkdirs();创建多级文件夹 if(folder.mkdir()) { System.out.println("文件夹创建完成"); }else { if(folder.exists()) { System.out.println("文件夹已存在不用创建"); }else { System.out.println("文件夹创建失败"); } } File newfolder = new File("my new folder-new"); //File newfolder = new File("my new folder-new/one/2"); //File newfolder = new File("my new folder-new/three");one和three在同一级 if(folder.renameTo(newfolder)) { System.out.println("done"); }else { System.out.println("fail"); } //删除的文件夹必须是空的文件夹 if(folder.delete()) { System.out.println("done"); }else { System.out.println("fail"); } } }
3、文件属性的读取
import java.io.File; public class ReadFileProperty { public static void main(String[] args) { File file = new File("text.text"); //判断文件是否存在 System.out.println("判断文件是否存在"+file.exists()); //读取文件名称 System.out.println("读取文件名称"+file.getName()); //读取文件的路径 System.out.println("读取文件路径"+file.getPath()); //读取文件的绝对路径 System.out.println("读取文件绝对路径"+file.getAbsolutePath()); //获取文件父级路径 System.out.println("获取文件父级路径"+new File(file.getAbsolutePath()).getParent()); //读取文件大小 System.out.println("读取文件大小"+file.length()/1000+"KB"); //判断文件是否被隐藏 System.out.println("判断文件是否被隐藏"+file.isHidden()); //判断文件是否可读 System.out.println("判断文件是否可读"+file.canRead()); //判断文件是否可写 System.out.println("判断文件是否可写"+file.canWrite()); //判断文件是否为文件夹 System.out.println("判断文件是否为文件夹"+file.isDirectory()); } }
4、文件属性的设置
import java.io.File; public class SetProperty { public static void main(String[] args) { // TODO Auto-generated method stub File file = new File("test.file"); if(file.exists() ) { //将文件设定为可写 file.setWritable(true); //将文件设定为可读 file.setReadable(true); //将文件设置为只读 file.setReadOnly(); } } }
5、遍历文件夹
import java.io.File; public class Scanner { public static void main(String[] args) { printFiles(new File("../HelloFolder"),1); } public static void printFiles(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+1); } // if(next[i].isFile()) { // System.out.println(next[i].getName()); // }else { // printFiles(next[i],tab+1); // } } } } }
6、文件的简单读写
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 ReadWriteTextFile { public static void main(String[] args) { File file = new File("text.text"); if(file.exists()) { System.out.println("exists"); try { FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis,"UTF-8"); 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) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block 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("测试写入"); bw.close(); osw.close(); fos.close(); System.out.println("写入完成"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }