JAVA文件操作基础

来源:互联网 发布:手机数据上网慢怎么办 编辑:程序博客网 时间:2024/06/06 18:33

闲来无事,想做一个小小的即时网络聊天工具,这就涉及到JAVA网络编程。而网络编程又是以一系列的I/O操作为基础的,还会涉及到诸如加密算法、多线程等领域。

此篇文章记述我在学习文件操作时所练代码,代码如下:

import java.io.File;public class IOTest {/** * @param args * @throws IOException  */public static void main(String[] args) {//Create file objectFile f1 = new File("d:\\test");File f2 = new File("1.txt");File f3 = new File("f:\\file.txt");File f4 = new File ("d:\\","1.txt");//Create filestry {boolean b = f3.createNewFile();}catch(Exception e) {e.printStackTrace();}//Judge if the file existSystem.out.println(f4.exists());//Get absolute pathSystem.out.println(f3.getAbsolutePath());//Get file nameSystem.out.println(f3.getName());//Get parent directorySystem.out.println(f3.getParent());//Judge if it is a directorySystem.out.println(f1.isDirectory());//Judge if it is a fileSystem.out.println(f3.isFile());//Get file lengthSystem.out.println(f3.length());//Get all files and directories' names under current directoryString[] s = f1.list();for (int i = 0; i < s.length; i++){System.out.println(s[i]);}//Get file objectFile[] f5 = f1.listFiles();for (int i = 0; i < f5.length; i++){System.out.println("f" + f5[i]);}//create directoryFile f6 = new File("f:\\test\\abc");boolean b1 = f6.mkdir();System.out.println(b1);b1 = f6.mkdirs();//Rename fileFile f7 = new File("f:\\a.txt");boolean b2 = f3.renameTo(f7);System.out.println(b2);//Set read onlyf7.setReadOnly();}}


 下面这部分是文件的名称打印和删除操作,由于无法直接删除一个非空目录,所以删除非空目录需要先删除其目录下的所有子目录,这就涉及到一个递归遍历问题,代码如下:

 

import java.io.File;public class AdvanceFileDemo {/** * Advanced file operation demo */public static void main(String[] args) {// TODO Auto-generated method stubFile f = new File("f:\\Book");printAllFile(f);File f1 = new File("d:\\test");deleteAll(f1);}/** * print all the directories and files under current directory * @param f File object */public static void printAllFile (File f) {//Print current file nameSystem.out.println(f.getName());//If it is a directoryif (f.isDirectory()) {//Get all sub-directories and filesFile [] f1 = f.listFiles();int len  = f1.length;for (int i = 0; i < len; i++) {printAllFile(f1[i]);}}}/** * Delete all files * @param f File object */public static void deleteAll (File f) {//If it is a single fileif (f.isFile()) {f.delete();} else { File f1[] = f.listFiles();int len  = f1.length;//delete sub-filesfor (int i = 0; i < len; i++) {deleteAll(f1[i]);}//delete current filef.delete();}}}


原创粉丝点击