- 论坛徽章:
- 0
|
Java文件操作大全
Java代码- 1.//1.创建文件夹
- 2.//import java.io.*;
- 3.File myFolderPath = new File(str1);
- 4.try {
- 5. if (!myFolderPath.exists()) {
- 6. myFolderPath.mkdir();
- 7. }
- 8.}
- 9.catch (Exception e) {
- 10. System.out.println("新建目录操作出错");
- 11. e.printStackTrace();
- 12.}
- 13.
- 14.//2.创建文件
- 15.//import java.io.*;
- 16.File myFilePath = new File(str1);
- 17.try {
- 18. if (!myFilePath.exists()) {
- 19. myFilePath.createNewFile();
- 20. }
- 21. FileWriter resultFile = new FileWriter(myFilePath);
- 22. PrintWriter myFile = new PrintWriter(resultFile);
- 23. myFile.println(str2);
- 24. resultFile.close();
- 25.}
- 26.catch (Exception e) {
- 27. System.out.println("新建文件操作出错");
- 28. e.printStackTrace();
- 29.}
- 30.
- 31.//3.删除文件
- 32.//import java.io.*;
- 33.File myDelFile = new File(str1);
- 34.try {
- 35. myDelFile.delete();
- 36.}
- 37.catch (Exception e) {
- 38. System.out.println("删除文件操作出错");
- 39. e.printStackTrace();
- 40.}
- 41.
- 42.//4.删除文件夹
- 43.//import java.io.*;
- 44.File delFolderPath = new File(str1);
- 45.try {
- 46. delFolderPath.delete(); //删除空文件夹
- 47.}
- 48.catch (Exception e) {
- 49. System.out.println("删除文件夹操作出错");
- 50. e.printStackTrace();
- 51.}
- 52.
- 53.//5.删除一个文件下夹所有的文件夹
- 54.//import java.io.*;
- 55.File delfile=new File(str1);
- 56.File[] files=delfile.listFiles();
- 57.for(int i=0;i<files.length;i++){
- 58. if(files[i].isDirectory()){
- 59. files[i].delete();
- 60. }
- 61.}
- 62.
- 63.//6.清空文件夹
- 64.//import java.io.*;
- 65.File delfilefolder=new File(str1);
- 66.try {
- 67. if (!delfilefolder.exists()) {
- 68. delfilefolder.delete();
- 69. }
- 70. delfilefolder.mkdir();
- 71.}
- 72.catch (Exception e) {
- 73. System.out.println("清空目录操作出错");
- 74. e.printStackTrace();
- 75.}
- 76.
- 77.//7.读取文件
- 78.//import java.io.*;
- 79.// 逐行读取数据
- 80.FileReader fr = new FileReader(str1);
- 81.BufferedReader br = new BufferedReader(fr);
- 82.String str2 = br.readLine();
- 83.while (str2 != null) {
- 84. str3
- 85. str2 = br.readLine();
- 86.}
- 87.br.close();
- 88.fr.close();
- 89.
- 90.//8.写入文件
- 91.//import java.io.*;
- 92.// 将数据写入文件
- 93.try {
- 94. FileWriter fw = new FileWriter(str1);
- 95. fw.write(str2);
- 96. fw.flush();
- 97. fw.close();
- 98.} catch (IOException e) {
- 99. e.printStackTrace();
- 100.}
- 101.
- 102.//9.写入随机文件
- 103.//import java.io.*;
- 104.try {
- 105. RandomAcessFile logFile=new RandomAcessFile(str1,"rw");
- 106. long lg=logFile.length();
- 107. logFile.seek(str2);
- 108. logFile.writeByte(str3);
- 109.}catch(IOException ioe){
- 110. System.out.println("无法写入文件:"+ioe.getMessage());
- 111.}
- 112.
- 113.//10.读取文件属性
- 114.//import java.io.*;
- 115.// 文件属性的取得
- 116.File f = new File(str1);
- 117.if (af.exists()) {
- 118. System.out.println(f.getName() + "的属性如下: 文件长度为:" + f.length());
- 119. System.out.println(f.isFile() ? "是文件" : "不是文件");
- 120. System.out.println(f.isDirectory() ? "是目录" : "不是目录");
- 121. System.out.println(f.canRead() ? "可读取" : "不");
- 122. System.out.println(f.canWrite() ? "是隐藏文件" : "");
- 123. System.out.println("文件夹的最后修改日期为:" + new Date(f.lastModified()));
- 124. } else {
- 125. System.out.println(f.getName() + "的属性如下:");
- 126. System.out.println(f.isFile() ? "是文件" : "不是文件");
- 127. System.out.println(f.isDirectory() ? "是目录" : "不是目录");
- 128. System.out.println(f.canRead() ? "可读取" : "不");
- 129. System.out.println(f.canWrite() ? "是隐藏文件" : "");
- 130. System.out.println("文件的最后修改日期为:" + new Date(f.lastModified()));
- 131.}
- 132.if(f.canRead()){
- 133. str2
- 134.}
- 135.if(f.canWrite()){
- 136. str3
- 137.}
- 138.
- 139.//11.写入属性
- 140.//import java.io.*;
- 141.File filereadonly=new File(str1);
- 142.try {
- 143. boolean b=filereadonly.setReadOnly();
- 144.}
- 145.catch (Exception e) {
- 146. System.out.println("拒绝写访问:"+e.printStackTrace());
- 147.}
- 148.
- 149.//12.枚举一个文件夹中的所有文件
- 150.//import java.io.*;
- 151.//import java.util.*;
- 152.LinkedList<String> folderList = new LinkedList<String>();
- 153.folderList.add(str1);
- 154.while (folderList.size() > 0) {
- 155. File file = new File(folderList.peek());
- 156. folderList.removeLast();
- 157. File[] files = file.listFiles();
- 158. ArrayList<File> fileList = new ArrayList<File>();
- 159. for (int i = 0; i < files.length; i++) {
- 160. if (files[i].isDirectory()) {
- 161. folderList.add(files[i].getPath());
- 162. } else {
- 163. fileList.add(files[i]);
- 164. }
- 165. }
- 166. for (File f : fileList) {
- 167. str2=f.getAbsoluteFile();
- 168. str3
- 169. }
- 170.}
- 171.
- 172.//13.复制文件夹
- 173.//import java.io.*;
- 174.//import java.util.*;
- 175.LinkedList<String> folderList = new LinkedList<String>();
- 176.folderList.add(str1);
- 177.LinkedList<String> folderList2 = new LinkedList<String>();
- 178.folderList2.add(str2+ str1.substring(str1.lastIndexOf("\\")));
- 179.while (folderList.size() > 0) {
- 180. (new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹
- 181. File folders = new File(folderList.peek());
- 182. String[] file = folders.list();
- 183. File temp = null;
- 184. try {
- 185. for (int i = 0; i < file.length; i++) {
- 186. if (folderList.peek().endsWith(File.separator)) {
- 187. temp = new File(folderList.peek() + File.separator
- 188. + file[i]);
- 189. } else {
- 190. temp = new File(folderList.peek() + File.separator + file[i]);
- 191. }
- 192. if (temp.isFile()) {
- 193. FileInputStream input = new FileInputStream(temp);
- 194. FileOutputStream output = new FileOutputStream(
- 195. folderList2.peek() + File.separator + (temp.getName()).toString());
- 196. byte[] b = new byte[5120];
- 197. int len;
- 198. while ((len = input.read(b)) != -1) {
- 199. output.write(b, 0, len);
- 200. }
- 201. output.flush();
- 202. output.close();
- 203. input.close();
- 204. }
- 205. if (temp.isDirectory()) {// 如果是子文件夹
- 206. for (File f : temp.listFiles()) {
- 207. if (f.isDirectory()) {
- 208. folderList.add(f.getPath());
- 209. folderList2.add(folderList2.peek()
- 210. + File.separator + f.getName());
- 211. }
- 212. }
- 213. }
- 214. }
- 215. } catch (Exception e) {
- 216. //System.out.println("复制整个文件夹内容操作出错");
- 217. e.printStackTrace();
- 218. }
- 219. folderList.removeFirst();
- 220. folderList2.removeFirst();
- 221.}
- 222.
- 223.//14.复制一个文件夹下所有的文件夹到另一个文件夹下
- 224.//import java.io.*;
- 225.//import java.util.*;
- 226.File copyfolders=new File(str1);
- 227.File[] copyfoldersList=copyfolders.listFiles();
- 228.for(int k=0;k<copyfoldersList.length;k++){
- 229. if(copyfoldersList[k].isDirectory()){
- 230. ArrayList<String>folderList=new ArrayList<String>();
- 231. folderList.add(copyfoldersList[k].getPath());
- 232. ArrayList<String>folderList2=new ArrayList<String>();
- 233. folderList2.add(str2+"/"+copyfoldersList[k].getName());
- 234. for(int j=0;j<folderList.length;j++){
- 235. (new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹
- 236. File folders=new File(folderList.get(j));
- 237. String[] file=folders.list();
- 238. File temp=null;
- 239. try {
- 240. for (int i = 0; i < file.length; i++) {
- 241. if(folderList.get(j).endsWith(File.separator)){
- 242. temp=new File(folderList.get(j)+"/"+file[i]);
- 243. } else {
- 244. temp=new File(folderList.get(j)+"/"+File.separator+file[i]);
- 245. }
- 246. FileInputStream input = new FileInputStream(temp);
- 247. if(temp.isFile()){
- 248. FileInputStream input = new FileInputStream(temp);
- 249. FileOutputStream output = new FileOutputStream(folderList2.get(j) + "/" + (temp.getName()).toString());
- 250. byte[] b = new byte[5120];
- 251. int len;
- 252. while ( (len = input.read(b)) != -1) {
- 253. output.write(b, 0, len);
- 254. }
- 255. output.flush();
- 256. output.close();
- 257. input.close();
- 258. }
- 259. if(temp.isDirectory()){//如果是子文件夹
- 260. folderList.add(folderList.get(j)+"/"+file[i]);
- 261. folderList2.add(folderList2.get(j)+"/"+file[i]);
- 262. }
- 263. }
- 264. }
- 265. catch (Exception e) {
- 266. System.out.println("复制整个文件夹内容操作出错");
- 267. e.printStackTrace();
- 268. }
- 269. }
- 270. }
- 271.}
- 272.
- 273.//15.移动文件夹
- 274.//import java.io.*;
- 275.//import java.util.*;
- 276.LinkedList<String> folderList = new LinkedList<String>();
- 277.folderList.add(str1);
- 278.LinkedList<String> folderList2 = new LinkedList<String>();
- 279.folderList2.add(str2 + str1.substring(str1.lastIndexOf("\\")));
- 280.while (folderList.size() > 0) {
- 281. (new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹
- 282. File folders = new File(folderList.peek());
- 283. String[] file = folders.list();
- 284. File temp = null;
- 285. try {
- 286. for (int i = 0; i < file.length; i++) {
- 287. if (folderList.peek().endsWith(File.separator)) {
- 288. temp = new File(folderList.peek() + File.separator + file[i]);
- 289. } else {
- 290. temp = new File(folderList.peek() + File.separator + file[i]);
- 291. }
- 292. if (temp.isFile()) {
- 293. FileInputStream input = new FileInputStream(temp);
- 294. FileOutputStream output = new FileOutputStream(
- 295. folderList2.peek() + File.separator + (temp.getName()).toString());
- 296. byte[] b = new byte[5120];
- 297. int len;
- 298. while ((len = input.read(b)) != -1) {
- 299. output.write(b, 0, len);
- 300. }
- 301. output.flush();
- 302. output.close();
- 303. input.close();
- 304. if (!temp.delete())
- 305. System.out.println("删除单个文件操作出错!");
- 306. }
- 307. if (temp.isDirectory()) {// 如果是子文件夹
- 308. for (File f : temp.listFiles()) {
- 309. if (f.isDirectory()) {
- 310. folderList.add(f.getPath());
- 311. folderList2.add(folderList2.peek() + File.separator + f.getName());
- 312. }
- 313. }
- 314. }
- 315. }
- 316. } catch (Exception e) {
- 317. // System.out.println("复制整个文件夹内容操作出错");
- 318. e.printStackTrace();
- 319. }
- 320. folderList.removeFirst();
- 321. folderList2.removeFirst();
- 322.}
- 323.File f = new File(str1);
- 324.if (!f.delete()) {
- 325. for (File file : f.listFiles()) {
- 326. if (file.list().length == 0) {
- 327. System.out.println(file.getPath());
- 328. file.delete();
- 329. }
- 330. }
- 331.}
- 332.//16.移动一个文件夹下所有的文件夹到另一个目录下
- 333.//import java.io.*;
- 334.//import java.util.*;
- 335.File movefolders=new File(str1);
- 336.File[] movefoldersList=movefolders.listFiles();
- 337.for(int k=0;k<movefoldersList.length;k++){
- 338. if(movefoldersList[k].isDirectory()){
- 339. ArrayList<String>folderList=new ArrayList<String>();
- 340. folderList.add(movefoldersList[k].getPath());
- 341. ArrayList<String>folderList2=new ArrayList<String>();
- 342. folderList2.add(str2+"/"+movefoldersList[k].getName());
- 343. for(int j=0;j<folderList.length;j++){
- 344. (new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹
- 345. File folders=new File(folderList.get(j));
- 346. String[] file=folders.list();
- 347. File temp=null;
- 348. try {
- 349. for (int i = 0; i < file.length; i++) {
- 350. if(folderList.get(j).endsWith(File.separator)){
- 351. temp=new File(folderList.get(j)+"/"+file[i]);
- 352. }
- 353. else{
- 354. temp=new File(folderList.get(j)+"/"+File.separator+file[i]);
- 355. }
- 356. FileInputStream input = new FileInputStream(temp);
- 357. if(temp.isFile()){
- 358. FileInputStream input = new FileInputStream(temp);
- 359. FileOutputStream output = new FileOutputStream(folderList2.get(j) + "/" + (temp.getName()).toString());
- 360. byte[] b = new byte[5120];
- 361. int len;
- 362. while ( (len = input.read(b)) != -1) {
- 363. output.write(b, 0, len);
- 364. }
- 365. output.flush();
- 366. output.close();
- 367. input.close();
- 368. temp.delete();
- 369. }
- 370. if(temp.isDirectory()){//如果是子文件夹
- 371. folderList.add(folderList.get(j)+"/"+file[i]);
- 372. folderList2.add(folderList2.get(j)+"/"+file[i]);
- 373. }
- 374. }
- 375. }
- 376. catch (Exception e) {
- 377. System.out.println("复制整个文件夹内容操作出错");
- 378. e.printStackTrace();
- 379. }
- 380. }
- 381. movefoldersList[k].delete();
- 382. }
- 383.}
- 384.
- 385.//17.以一个文件夹的框架在另一个目录创建文件夹和空文件
- 386.//import java.io.*;
- 387.//import java.util.*;
- 388.boolean b=false;//不创建空文件
- 389.ArrayList<String>folderList=new ArrayList<String>();
- 390.folderList.add(str1);
- 391.ArrayList<String>folderList2=new ArrayList<String>();
- 392.folderList2.add(str2);
- 393.for(int j=0;j<folderList.length;j++){
- 394. (new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹
- 395. File folders=new File(folderList.get(j));
- 396. String[] file=folders.list();
- 397. File temp=null;
- 398. try {
- 399. for (int i = 0; i < file.length; i++) {
- 400. if(folderList.get(j).endsWith(File.separator)){
- 401. temp=new File(folderList.get(j)+"/"+file[i]);
- 402. }
- 403. else{
- 404. temp=new File(folderList.get(j)+"/"+File.separator+file[i]);
- 405. }
- 406. FileInputStream input = new FileInputStream(temp);
- 407. if(temp.isFile()){
- 408. if (b) temp.createNewFile();
- 409. }
- 410. if(temp.isDirectory()){//如果是子文件夹
- 411. folderList.add(folderList.get(j)+"/"+file[i]);
- 412. folderList2.add(folderList2.get(j)+"/"+file[i]);
- 413. }
- 414. }
- 415. }
- 416. catch (Exception e) {
- 417. System.out.println("复制整个文件夹内容操作出错");
- 418. e.printStackTrace();
- 419. }
- 420.}
- 421.
- 422.//18.复制文件
- 423.//import java.io.*;
- 424. int bytesum = 0;
- 425. int byteread = 0;
- 426. File oldfile = new File(str1);
- 427. try {
- 428. if (oldfile.exists()) { //文件存在时
- 429. FileInputStream inStream = new FileInputStream(oldfile); //读入原文件
- 430. FileOutputStream fs = new FileOutputStream(new File(str2,oldfile.getName()));
- 431. byte[] buffer = new byte[5120];
- 432. int length;
- 433. while ( (byteread = inStream.read(buffer)) != -1) {
- 434. bytesum += byteread; //字节数 文件大小
- 435. System.out.println(bytesum);
- 436. fs.write(buffer, 0, byteread);
- 437. }
- 438. inStream.close();
- 439. }
- 440. }
- 441. catch (Exception e) {
- 442. System.out.println("复制单个文件操作出错");
- 443. e.printStackTrace();
- 444. }
- 445.
- 446.//19.复制一个文件夹下所有的文件到另一个目录
- 447.//import java.io.*;
- 448.File copyfiles=new File(str1);
- 449.File[] files=copyfiles.listFiles();
- 450.for(int i=0;i<files.length;i++){
- 451. if(!files[i].isDirectory()){
- 452. int bytesum = 0;
- 453. int byteread = 0;
- 454. try {
- 455. InputStream inStream = new FileInputStream(files[i]); //读入原文件
- 456. FileOutputStream fs = new FileOutputStream(new File(str2,files[i].getName());
- 457. byte[] buffer = new byte[5120];
- 458. int length;
- 459. while ( (byteread = inStream.read(buffer)) != -1) {
- 460. bytesum += byteread; //字节数 文件大小
- 461. System.out.println(bytesum);
- 462. fs.write(buffer, 0, byteread);
- 463. }
- 464. inStream.close();
- 465. } catch (Exception e) {
- 466. System.out.println("复制单个文件操作出错");
- 467. e.printStackTrace();
- 468. }
- 469. }
- 470.}
- 471.
- 472.//20.提取扩展名
- 473.String str2=str1.substring(str1.lastIndexOf(".")+1);
复制代码 |
|