1.File类的用法
下面就用几个简单的代码案例来熟悉File类里面函数的用法:
public class IODemo1 {public static void main(String[] args) throws IOException {File f = new File("./test2.txt");//File f = new File("C:/User/1/test.txt");System.out.println(f.getParent());System.out.println(f.getName());System.out.println(f.getPath());System.out.println(f.getAbsolutePath());System.out.println(f.getCanonicalPath());//对于绝对路径的简化}
}
运行结果:
public class IODemo2 {public static void main(String[] args) throws IOException {File f = new File("./test.txt");System.out.println(f.exists());// 该文件是否存在System.out.println(f.isFile());// 是否有该文件System.out.println(f.isDirectory());// 是否有目录boolean ret = f.createNewFile();//这个是用来创建文件的System.out.println(ret);}
}
运行结果:为 true true false false
这个运行结果是已经创建了 test.txt这个文件了。
public class IODemo3 {public static void main(String[] args) {File f = new File("./test.txt");//jvm 退出是才删除f.deleteOnExit();}
}
public class IODemo4 {public static void main(String[] args) {File f = new File(".");File[] list = f.listFiles();// . 表示当前路径 返回 File 对象代表的目录
下的所有文件,以 File 对象表示System.out.println(Arrays.toString(list));}
}
public class IODemo5 {public static void main(String[] args) {File f = new File("./aaa/bbb/ccc");boolean ret = f.mkdirs();// 与mkdirs的区别 如果上级没有就会创建// mkdir 如果上级没有这会报错System.out.println(ret);}
}
public static void main(String[] args) throws IOException {//进行文件改名,也可以视为我们平时的剪切、粘贴操作File src = new File("./test2.txt");//src.createNewFile();File dest = new File("./aaa/test2.txt");src.renameTo(dest);}
}
上面就是一些常用File类里面函数的用法,并且每个代码旁边有注释可以去看看。
2.InputStream和 OutputStream
InputStream和 OutputStream是以字节为单位进行读写,一次最少读写一个字节,而Reader和Writer是以字符单位进行读写。(这几个类的使用非常相似,会用一个,其他也就会了)
1. InputStream简单用法
public class IODemo7 {public static void main(String[] args) throws IOException {try (InputStream inputStream = new FileInputStream("./test.txt")){while(true){byte[] buffer = new byte[1024];int n = inputStream.read(buffer);if(n == -1){break;}for(int i = 0; i < n; i++){System.out.printf("%x ", buffer[i]);}}}}
}
这里使用的是try-with,它会自动在我们使用完这个对象自动释放,避免了程序猿忘记释放而导致出现大问题。
2. OutputStream简单用法
public class IODemo9 {public static void main(String[] args) {// 如果后面不跟true 下次打开就会重置里面的,如果跟了true只会在后面增加// 以字节为单位惊醒读写,一次最少读写一个字节try(OutputStream outputStream = new FileOutputStream("./test.txt",true)){byte[] buffer = new byte[]{97,98,99,100};outputStream.write(buffer);} catch (IOException e) {throw new RuntimeException(e);}}
}
这里注意了后面加了一个true,加了跟没加有很大的区别,加上true的话打开该文本是不会把之前的给清空,继续往上面增加,加不加true,也是看场景是否需要而加上的。