JAVA FILE or I/O学习 - File学习
1 public class FileKnow 2 { 3 public static void main(String[] args) 4 { 5 //构建file对象 ,参数表示文件所在的路径 6 File file = new File("d:\\niit.log"); 7 8 //判断文件是否存在 9 System.out.println(file.exists()); 10 //判断文件是否是单个的文件 11 System.out.println(file.isFile()); 12 //判断文件是否是文件夹 13 System.out.println(file.isDirectory()); 14 //获取文件的绝对路径 15 System.out.println(file.getAbsolutePath()); 16 //获取文件名 17 System.out.println(file.getAbsolutePath().substring(file.getAbsolutePath().lastIndexOf("\\")+1,file.getAbsolutePath().lastIndexOf("."))); 18 //获取文件完整的名称包括后缀名 19 System.out.println(file.getName()); 20 //获取文件所在的相对路径 21 System.out.println(file.getParent()); 22 //获取文件所在盘符的大小空间 23 System.out.println(file.getTotalSpace()); 24 //获取文件所在盘符的可用空间 25 System.out.println(file.getFreeSpace()); 26 System.out.println(file.getUsableSpace()); 27 //获取文件自身的字节数 28 System.out.println(file.length()); 29 //是否隐藏文件 30 System.out.println(file.isHidden()); 31 //是否可读 32 System.out.println(file.canRead()); 33 //设置文件是否可写(只读性的设置) 34 file.setWritable(false); 35 //获取文件最后次修改的时间 36 System.out.println(file.lastModified()); 37 System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date(file.lastModified()))); 38 // FileKnow fileKnow = new FileKnow(); 39 // fileKnow.createFile("E:/【 图 片 】", "weifei.jpg"); 40 } 41 /*******************************************文件基本操作**********************************************/ 42 /** 43 * 根据指定路径搜索显示所有的文件信息 44 * @param path 45 */ 46 public void showFiles(String path) 47 { 48 //通过路径构建文件 49 File file = new File(path); 50 //判断文件是否存在 51 if(file.exists()) 52 { 53 //打印输出当前文件的路径 54 System.out.println(file.getAbsolutePath()); 55 //判断是否是文件夹 56 if(file.isDirectory()) 57 { 58 //判断文件夹中是否有文件 59 File[] files = file.listFiles(); 60 if(files != null) 61 { 62 //遍历子文件 63 for(File childFile : files) 64 { 65 showFiles(childFile.getAbsolutePath()); 66 } 67 } 68 } 69 } 70 else 71 { 72 System.out.println("文件不存在!"); 73 } 74 } 75 /** 76 * @param args 77 */ 78 /** 79 * 创建文件 80 */ 81 public void createFile(String path,String fileName) 82 { 83 //创建文件对象 84 File file = new File(path, fileName); 85 //判断文件是否存在 86 if(file.exists()) 87 { 88 System.out.println("文件已经存在"); 89 } 90 else 91 { 92 //创建文件 93 try 94 { 95 if (file.createNewFile()) 96 { 97 System.out.println("文件创建成功"); 98 } 99 else { 100 System.out.println("文件创建失败"); 101 } 102 } catch (IOException e) 103 { 104 // TODO Auto-generated catch block 105 e.printStackTrace(); 106 } 107 } 108 } 109 /** 110 * 创建文件夹 111 * @param path 112 */ 113 public void createDirectroy(String path, String diretroyName) 114 { 115 File file = new File(path, diretroyName); 116 //判断是否存在 117 if(!file.exists()) 118 { 119 //创建文件夹 120 file.mkdir(); 121 } 122 else 123 { 124 System.out.println("文件夹已经存在"); 125 } 126 } 127 /** 128 * 拷贝文件 129 * @param sourcePath 复制文件的路径 如:D:/ 130 * @param fileName 文件名 如:back.jpg 131 * @param newPath 复制到的位置 如:E:/ 132 */ 133 public void copyFile(String sourcePath, String fileName, String newPath) 134 { 135 //创建复制的文件 136 File sourceFile = new File(sourcePath,fileName); 137 //判断文件是否存在 138 if(sourceFile.exists()) 139 { 140 File newFile = new File(newPath,fileName); 141 //如果文件存在,判断文件的类型 142 if(sourceFile.isFile()) 143 { 144 //如果是单个的文件,使用流读写文件 145 try 146 { 147 //构建输入流读取复制的文件 148 BufferedInputStream input = new BufferedInputStream(new FileInputStream(sourceFile),1024*1024*10); 149 //构建输出流写出文件 150 BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(newFile),1024*1024*10); 151 int data; 152 while((data = input.read()) != -1) 153 { 154 output.write(data); 155 } 156 //关闭流 157 output.flush(); 158 output.close(); 159 input.close(); 160 161 } catch (FileNotFoundException e) 162 { 163 // TODO Auto-generated catch block 164 e.printStackTrace(); 165 } catch (IOException e) 166 { 167 // TODO Auto-generated catch block 168 e.printStackTrace(); 169 } 170 } 171 else 172 { 173 //如果是文件夹,新建文件夹 174 newFile.mkdir(); 175 //判断文件夹中是否还有子文件 176 File[] files = sourceFile.listFiles(); 177 //遍历子文件 178 for(File childFile : files) 179 { 180 //递归复制子文件 181 copyFile(childFile.getParent(), childFile.getName(), newFile.getAbsolutePath()); 182 } 183 } 184 } 185 } 186 /** 187 * 剪切文件 188 * @param sourcePath 189 * @param fileName 190 * @param newPath 191 */ 192 public void cutFile(String sourcePath, String fileName, String newPath) 193 { 194 // 195 } 196 /** 197 * 重命名 198 * @param path 199 * @param fileName 200 * @param newName 201 */ 202 public void renameFile(String path, String fileName, String newName) 203 { 204 //创建源文件 205 File oldFile = new File(path, fileName); 206 //判断源文件是否存在 207 if(oldFile.exists()) 208 { 209 //创建新文件 210 File newFile = new File(path, newName); 211 //判断新文件是否存在 212 if(!newFile.exists()) 213 { 214 //重命名 215 oldFile.renameTo(newFile); 216 } 217 else 218 { 219 System.out.println("文件名已存在"); 220 } 221 222 } 223 else 224 { 225 System.out.println("文件不存在"); 226 } 227 228 } 229 /** 230 * 删除文件 231 * @param path 232 * @param fileName 233 */ 234 public void deleteFile(String path, String fileName) 235 { 236 //获取要删除的文件对象 237 File file = new File(path,fileName); 238 //判断文件是否存在 239 if(file.exists()) 240 { 241 //如果存在,判断该文件是文件还是文件夹 242 if(file.isDirectory()) 243 { 244 //如果是文件夹,获取该文件夹的子文件 245 File[] files = file.listFiles(); 246 //递归删除子文件 247 for(File childFile : files) 248 { 249 deleteFile(childFile.getParent(), childFile.getName()); 250 } 251 } 252 //删除整个文件 253 file.delete(); 254 } 255 } 256 }