File操作小梳理

1关于file.isFile()与file.isDirectory()
错误以为若是Directory一定是file,file不一定是Directory
更正:file和Directory是两码事.只能是file或Directory中其中一个.

2并不是说我们执行一句File f=new File("F:\\x.txt");
在本地硬盘上就生成了一个x.txt文件.而应该进行如下的
操作才可以.
File f=new File("F:\\x.txt");
 if (!f.exists()) {
    f.createNewFile();
  }
其中f.createNewFile()表示创建了一个空文件

3 对于目录应该先执行file.mkdir(s)()才可以
往里面其下存入文件.比如:
File f=new File("F:\\test\\x.txt");
  if (!f.exists()) {
     f.createNewFile();
  }
这当然要报错,因为x.txt的所在目录还不存在!!
所以应该改正为:
File f=new File("F:\\test\\x.txt");
f.getParentFile().mkdirs();
if (!f.exists()) {
   f.createNewFile();
}
同样的道理
File f=new File("F:\\test\\x.txt");
if (f.isFile()) {
   System.out.println("true");
}else{
   System.out.println("false");
}
结果为false

所以更好的实践体验,应该如下:
 File file=new File("E:\\zz\\xx\\123.txt");
 //1 首先判断其父文件是否存在,若不存在则创建

 //  不论其父路径有多复杂都会创建.
 //  比如E盘下根本就没有zz和xx
 //  但在此会按该层次创建
 if (!file.getParentFile().exists()) {
   file.getParentFile().mkdirs();
 }

 //2 再判断该文件是否存在,若不存在则创建
 if (!file.exists()) {
   try {
    file.createNewFile();
  } catch (IOException e) {
    e.printStackTrace();
   }
  }  

  
4 总结两种与File有关的两种操作思路
(1)
File f=new File("");
f.createNewFile();
然后对f操作.
这当然没有错,因为f已经被创建了

(2)file f=new File("");
然后用输入输出流进行流操作
例如:
File f=new File("F:\\test.txt");
FileOutputStream fos=new FileOutputStream(f);
String string="hello";
byte []b=string.getBytes();
fos.write(b, 0, b.length);  
疑问:
按照(1)中的思路没有执行f.createNewFile()为什么不报错???
因为输出流FileOutputStream已经做了该工作
修改例子即可知:
File f=new File("F:\\2221x.txt");
if (f.isFile()) {
   System.out.println("true1");
} else {
   System.out.println("false1");
}
FileOutputStream fos=new FileOutputStream(f);
if (f.isFile()) {
   System.out.println("true2");
} else {
   System.out.println("false2");
}
String string="hello";
byte []b=string.getBytes();
fos.write(b, 0, b.length);
输出false1,true2
即得到验证.

时间: 2024-09-26 21:02:06

File操作小梳理的相关文章

4个相关的excel列操作小技巧

  4个相关的excel列操作小技巧          1.调整列宽和另一个表相同 用途:把两个表的列宽调整一致,不用再一列一列的手工调整了. 操作方法:选取表1的列(A:D) - 复制 - 选取表2的列(F:I) - 选择性粘贴 - 列宽. 2.快速选取指定的列 用途:在一个几十列数据的表格中,快速跳转到指定的列. 操作方法:选取表格的前2行的区域(不要选整行) - 公式 - 根据所选内容创建 - 首行. 设置完成后,打开左上角地址框,点击就可以跳转到指定的列. 取消方法:公式 - 名称管理器

关于java中File类小问题

问题描述 关于java中File类小问题 File f2 = new File("c:abc","b.txt"); f2.createNewFile(); 为什么以上代码同时执行会报错? 解决方案 java 小问题Java小问题java中的小问题 解决方案二: 你的abc目录存在吗 解决方案三: 总感觉应该来个if 是否存在 的判断比较好,而且还要处理异常 解决方案四: 先判断一下是否存在,然后在创建.应该就可以了. 解决方案五: 报错信息放下来看看 new Fil

windows 7组合快捷键操作小技巧

  在Win7中,组合快捷键的数量也越来越多了,巧妙使用组合的快捷键,我们将会得到事半功倍的效果,下面叫大家如何巧妙使组合吧... 1.Win+上下方向键: 对程序窗口大小调整是经常会遇到的操作,尤其是默认窗口和最大化之间的切换.在Windows 7之前,你只能通过鼠标点击右上角的最大化/还原按钮或者是双击标题栏来实现,现在当你想让当前窗口最大化,还可以通过Win + 向上的箭头的键盘组合操作来实现;Win + 向下箭头则可以还原到原始窗口.特别的,在原始窗口下按Win + 向下箭头还可以将其最

Sql Server实用操作小技巧集合

server|集合|技巧 包括安装时提示有挂起的操作.收缩数据库.压缩数据库.转移数据库给新用户以已存在用户权限.检查备份集.修复数据库等  (一)挂起操作在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用,解决办法:到HKEY_LOCAL_MACHINE YSTEM\CurrentControlSet\Control ession Manager删除PendingFileRenameOperations(二)收缩数据库--重建索引DBCC REINDEXDBC

SqlServer实用操作小技巧集合

server|sqlserver|集合|技巧 (一)挂起操作在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用,解决办法:到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager删除PendingFileRenameOperations (二)收缩数据库--重建索引DBCC REINDEXDBCC INDEXDEFRAG--收缩数据和日志DBCC SHRINKDBDBCC SHRIN

电脑常用的30个操作小技巧知识总结介绍

1. 重装Windows XP不需再激活 如果你需要重装Windows XP,通常必须重新激活.事实上只要在第一次激活时,备份好WindowsSystem32目录中的Wpa.dbl文件,就不用再进行激活的工作了.在重装Windows XP后,只需要复制该文件到上面的目录即可. 2. 如何知道自己的Windows XP是否已激活 打开开始→运行,在弹出的对话框中输入:oobe/msoobe /a,回车后系统会弹出窗口告诉你系统是否已经激活. 3. 关闭zip文件夹功能 你是不是觉得Windows

神奇"梦邮"DreamMai操作小技巧

优秀的http://www.aliyun.com/zixun/aggregation/12490.html">邮件客户端软件DreamMail越来越受电脑用户的喜爱,下面是有关DreamMail附件操作的几个小技巧,与大家共享. 首先,在DreamMail中,如果您还没有打开附件栏,可单击菜单"查看→窗口布局",在打开的"布局"窗口中,选中"附件栏",这样在邮件有附件时附件会显示在屏幕下方. 1. 快速编辑和打印附件 如果您要把所

SqlServer 实用操作小技巧集合第1/2页_MsSql

包括安装时提示有挂起的操作.收缩数据库.压缩数据库.转移数据库给新用户以已存在用户权限.检查备份集.修复数据库等 (一)挂起操作 在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用,解决办法: 到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 删除PendingFileRenameOperations (二)收缩数据库 --重建索引 DBCC REINDEX DBCC IND

SqlServer 实用操作小技巧集合第1/2页

包括安装时提示有挂起的操作.收缩数据库.压缩数据库.转移数据库给新用户以已存在用户权限.检查备份集.修复数据库等 (一)挂起操作 在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用,解决办法: 到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 删除PendingFileRenameOperations (二)收缩数据库 --重建索引 DBCC REINDEX DBCC IND