1、File类简介
创建好:File file=new File("hello.txt"); 后,按住Ctrl键、单击File。会出现File的源代码。
在视图左下角双击“outline”大纲最大化后会出现文件所具有的方法,带有绿色的点,表明方法是公开的,即public 。
public static void main(String[] args) { // TODO Auto-generated method stub File file=new File("hello.txt"); if (file.exists()) { System.out.println(file.isFile());//文件可以是文件 System.out.println(file.isDirectory());//也可以是文件夹(路径) }else { System.out.println("文件不存在"); //结果是不存在的!
2、文件的创建、删除、重命名。
(1)创建和删除:
public static void main(String[] args) { // TODO Auto-generated method stub File file=new File("hello.txt"); if (file.exists()) { // System.out.println(file.isFile());//文件可以是文件// System.out.println(file.isDirectory());//也可以是文件夹(路径) file.delete();//文件删除 System.out.println("文件删除成功"); }else { System.out.println("文件不存在"); try { file.createNewFile(); System.out.println("文件已经成功创建"); } catch (IOException e) { // TODO Auto-generated catch block System.out.println("文件无法创建");
(2)重命名:(注意:文件夹结构必须处于同一个分区,文件处于不同的分区,需要使用的是文件的拷贝而不是重命名)
public static void main(String[] args) { // TODO Auto-generated method stub File file=new File("hello.txt"); if (file.exists()) { File nameto=new File("new hello.txt");//重命名 file.renameTo(nameto);// System.out.println(file.isFile());//文件可以是文件// System.out.println(file.isDirectory());//也可以是文件夹(路径) //file.delete();//文件删除 //System.out.println("文件删除成功"); }else { System.out.println("文件不存在"); try { file.createNewFile(); System.out.println("文件已经成功创建"); } catch (IOException e) { // TODO Auto-generated catch block System.out.println("文件无法创建"); }
3、文件夹的创建、删除、重命名。
1、
public static void main(String[] args) { File folder =new File("my new folder");//文件夹的创建 if (folder.mkdirs()) { System.out.println("文件夹创建完成"); }else { if (folder.exists()) { System.out.println("文件夹已经存在不用创建"); }else { System.out.println("文件夹创建失败");
2、
File folder =new File("my new folder"); File newfolder=new File("my new folder-new");//重命名 if (folder.renameTo(newfolder)) { System.out.println("重命名成功"); }else { System.out.println("重命名失败");
3、
File folder =new File("my new folder"); if (folder.delete()) { //删除(只能删空文件夹啊!) System.out.println("delete suceeded"); }else { System.out.println("delete failed");
4、文件属性的读取
(1)创建一个文件:在右击工程、new、选untitled text file 、输入内容后、另存为(选中所属工程名)、重命名~
public class ReadFileProperty { public static void main(String[] args) { File file=new File("text.txt");// 判断文件是否存在 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()+"byte"); System.out.println("读取文件大小"+(float)file.length()/1000+"KB");// 判断文件是否被隐藏 System.out.println("判断文件是否被隐藏"+file.isHidden());// 判断文件是否可读 System.out.println("判断文件是否可读"+file.canRead());// 判断文件是否可写 System.out.println("判断文件是否可写"+file.canWrite());// 判断文件是否为文件夹 System.out.println("判断文件是否为文件夹"+file.isDirectory());
结果:
判断文件是否存在true
读取文件名称text.txt
读取文件路径text.txt
读取文件绝对路径C:\Documents and Settings\Owner.LENOVO-F94A111E\workspace\ReadFileProperty\text.txt
获取文件父级路径C:\Documents and Settings\Owner.LENOVO-F94A111E\workspace\ReadFileProperty
读取文件大小14byte
读取文件大小0.014KB
判断文件是否被隐藏false
判断文件是否可读true
判断文件是否可写true(如果将文件设置为只读的话 ,那么就是false !)
判断文件是否为文件夹false
1、 文件属性的设置
File file=new File("test.file"); //也是要手动新建一个文件的! if (file.exists()) { //将文件设定为可写(前提需要先将它设置为不可写!) file.setWritable(true);//or false //将文件设定为可读 file.setReadable(true); //将文件设定为只读(运行一下语句时需要将上面两个语句注释掉~) file.setReadOnly();}
2、 遍历文件夹:
public static void main(String[] args) { // TODO Auto-generated method stub printFiles(new File("../FileScanner"),1); } public static void printFiles(File dir,int tab) { //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("|---");//去掉ln。 } System.out.println(next[i].getName()); if (next[i].isDirectory()) { printFiles(next[i],tab+1);
结果:
|---.classpath
|---.project
|---.settings
|---|---org.eclipse.jdt.core.prefs
|---bin
|---|---com
|---|---|---jikexueyuan
|---|---|---|---filescan
|---|---|---|---|---main
|---|---|---|---|---|---Scanner.class
|---src
|---|---com
|---|---|---jikexueyuan
|---|---|---|---filescan
|---|---|---|---|---main
|---|---|---|---|---|---Scanner.java
3、 文件的简单读写:
(1)读::
public static void main(String[] args) { // TODO Auto-generated method stub File file=new File("text.txt"); if (file.exists()) { System.err.println("exist"); 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){ e.printStackTrace(); }catch ( UnsupportedEncodingException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace();
(2)写:
File newfile =new File("newtext.txt"); FileOutputStream fos =new FileOutputStream(newfile); OutputStreamWriter osw =new OutputStreamWriter(fos,"UTF-8"); BufferedWriter bw=new BufferedWriter(osw); try { bw.write("长歌行 汉乐府\n"); bw.write("青青园中葵,朝露待日晞。\n"); bw.write("阳春布德泽,万物生光辉。\n"); bw.write("常恐秋节至,焜黄华叶衰。\n"); bw.write("百川东到海,何时复西归?\n"); bw.write("少壮不努力,老大徒伤悲。\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();