文件操作File
2016-04-03 11:24
225 查看
纸上得来终觉浅
1.java文件和文件夹的操作
下面是运行结果:
![](http://img.blog.csdn.net/20160403112931305?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20160403112946962?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.注意一下几点:
1) windows不可设置文件属性为不可读,所以上段代码设置不可读是失效。
2)windows rename操作必须在同一个分区中。
3)设置属性之间的关系:
A: 如果设置了可写,一定是可读可写的。
B:如果设置了可读为真,可以是不可写的。
C:如果设置了可读为假,一定是不可读不可写的。
以上三点基于这样的命题即可:可读是可写必要条件
D:setReadable(true) +setWritable(false)等同于 setReadOnly
1.java文件和文件夹的操作
public class abs{ public static void main(String[] args) { /*文件操作*/ File myFile = new File("test.txt"); if(!myFile.exists()){ System.out.println("myfile:文件不存在"); try { myFile.createNewFile(); } catch (IOException e) { e.printStackTrace(); } System.out.println("myfile创建成功"); }else{ System.out.println("myfile已经存在"); } System.out.println("绝对路径:"+myFile.getAbsolutePath()); System.out.println("父级目录:"+new File(myFile.getAbsolutePath()).getParent()); System.out.println("相对路径:"+myFile.getPath()); System.out.println("文件名:"+myFile.getName()); System.out.println("是否文件夹:"+myFile.isDirectory()); System.out.println("是否文件:"+myFile.isFile()); System.out.println("是否可读:"+myFile.canRead()); System.out.println("是否可写:"+myFile.canWrite()); System.out.println(); /*在windows在文件可读性不能被设置为false,所以这里的设置失效,如果生效的话可读为false,可写为false*/ System.out.println("设置不可读"+myFile.setReadable(false)); System.out.println("是否可读:"+myFile.canRead()); System.out.println("是否可写:"+myFile.canWrite()); System.out.println(); System.out.println("设置可读"+myFile.setReadable(true)); System.out.println("设置不可写"+myFile.setWritable(false)); System.out.println("是否可读:"+myFile.canRead()); System.out.println("是否可写:"+myFile.canWrite()); System.out.println(); System.out.println("设置不可读"+myFile.setReadable(false)); System.out.println("设置可写"+myFile.setWritable(true)); System.out.println("是否可读:"+myFile.canRead()); System.out.println("是否可写:"+myFile.canWrite()); System.out.println(); System.out.println("设置只可读"+myFile.setReadOnly()); System.out.println("是否可读:"+myFile.canRead()); System.out.println("是否可写:"+myFile.canWrite()); System.out.println(); System.out.println("文件长度:"+myFile.length()); System.out.println("文件是否隐藏:"+myFile.isHidden()); System.out.println("输出数据前设置可写"+myFile.setWritable(true)); /*输出数据到文件*/ try { FileOutputStream fileOutputStream = new FileOutputStream(myFile); OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream,"UTF-8"); BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter); bufferedWriter.write("白日依山尽\n"); bufferedWriter.write("黄河入海流\n"); bufferedWriter.write("欲穷千里目\n"); bufferedWriter.write("更上一层楼\n"); bufferedWriter.close(); outputStreamWriter.close(); fileOutputStream.close(); } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } System.out.println("文件长度:"+myFile.length()); System.out.println(); try { FileInputStream fileInputStream = new FileInputStream(myFile); InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"UTF-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String line; while((line = bufferedReader.readLine())!=null){ System.out.println(line); } bufferedReader.close(); inputStreamReader.close(); fileInputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } File myfile2 = new File("test2.txt"); myFile.renameTo(myfile2); if(myFile.delete()){ System.out.println("旧文件删除成功"); }else{ System.out.println("旧文件删除失败"); if(myfile2.exists()){ myfile2.delete(); System.out.println("新文件删除成功"); }else{ System.out.println("新文件删除失败"); } } /*文件夹操作*/ File myFoder = new File("test"); if(!myFoder.exists()){ System.out.println("myFoder:文件夹不存在"); myFoder.mkdirs(); }else{ System.out.println("文件夹已经存在"); } File myfoder2 = new File("test2"); myFoder.renameTo(myfoder2); if(myFoder.delete()){ System.out.println("旧文件夹删除成功"); }else{ System.out.println("旧文件夹删除失败"); if(myfoder2.exists()){ myfoder2.delete(); System.out.println("新文件夹删除成功"); }else{ System.out.println("新文件夹删除失败"); } } //文件夹内部文件遍历 File myFoder3 = new File("src"); if(!myFoder3.exists()){ System.out.println("src文件夹不存在"); }else{ search(myFoder3,1); } } public static void search(File file,int i){ String tab = ""; int i2 = i; while(i2-->0){tab+="-";} System.out.println(tab+file.getName()); if(!file.isFile()){ File newFile[] = file.listFiles(); i++; for (int x = 0; x < newFile.length; x++) { search(newFile[x],i); } } } }
下面是运行结果:
2.注意一下几点:
1) windows不可设置文件属性为不可读,所以上段代码设置不可读是失效。
2)windows rename操作必须在同一个分区中。
3)设置属性之间的关系:
A: 如果设置了可写,一定是可读可写的。
B:如果设置了可读为真,可以是不可写的。
C:如果设置了可读为假,一定是不可读不可写的。
以上三点基于这样的命题即可:可读是可写必要条件
D:setReadable(true) +setWritable(false)等同于 setReadOnly
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树