之前介绍过Java IO流包结构、java IO流的概念与分类,接下来我们详细介绍各种IO流如何使用,文章以例子为主
【案例1】创建一个新文件
- import java.io.*;
- class hello{
- public static void main(String[] args) {
- File f=new File("D:\\hello.txt");
- try{
- f.createNewFile();
- }catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
【案例2】File类的两个常量
- import java.io.*;
- class hello{
- public static void main(String[] args) {
- System.out.println(File.separator);
- System.out.println(File.pathSeparator);
- }
- }
\
;
此处多说几句:有些同学可能认为,我直接在windows下使用\进行分割不行吗?当然是可以的。但是在linux下就不是\了。所以,要想使得我们的代码跨平台,更加健壮,所以,大家都采用这两个常量吧,其实也多写不了几行。
现在我们使用File类中的常量改写上面的代码:
- import java.io.*;
- class hello{
- public static void main(String[] args) {
- String fileName="D:"+File.separator+"hello.txt";
- File f=new File(fileName);
- try{
- f.createNewFile();
- }catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
【案例3】删除一个文件
- /**
- * 删除一个文件
- * */
- import java.io.*;
- class hello{
- public static void main(String[] args) {
- String fileName="D:"+File.separator+"hello.txt";
- File f=new File(fileName);
- if(f.exists()){
- f.delete();
- }else{
- System.out.println("文件不存在");
- }
- }
- }
【案例4】创建一个文件夹
- /**
- * 创建一个文件夹
- * */
- import java.io.*;
- class hello{
- public static void main(String[] args) {
- String fileName="D:"+File.separator+"hello";
- File f=new File(fileName);
- if(!f.exists()){
- f.mkdir();
- }
- }
- }
【运行结果】:D盘下多了一个hello文件夹
【案例5】列出指定目录的全部文件(包括隐藏文件):
- /**
- * 使用list列出指定目录的全部文件
- * */
- import java.io.*;
- class hello{
- public static void main(String[] args) {
- String fileName="D:"+File.separator;
- File f=new File(fileName);
- String[] str=f.list();
- for (int i = 0; i < str.length; i++) {
- System.out.println(str[i]);
- }
- }
- }
【运行结果】:
$RECYCLE.BIN
360
360Downloads
360Rec
360SoftMove
Config.Msi
da
Downloads
DriversBackup
eclipse
java web整合开发和项目实战
Lenovo
MSOCache
Program
Program Files
python
RECYGLER.{8F92DA15-A229-A4D5-B5CE-5280C8B89C19}
System Volume Information
Tomcat6
var
vod_cache_data
【案例6】列出指定目录的全部文件(包括隐藏文件):
使用list返回的是String数组,。而且列出的不是完整路径,如果想列出完整路径的话,需要使用listFiles.他返回的是File的数组
- /**
- * 使用listFiles列出指定目录的全部文件
- * listFiles输出的是完整路径
- * */
- import java.io.*;
- class hello{
- public static void main(String[] args) {
- String fileName="D:"+File.separator;
- File f=new File(fileName);
- File[] str=f.listFiles();
- for (int i = 0; i < str.length; i++) {
- System.out.println(str[i]);
- }
- }
- }
D:\$RECYCLE.BIN
D:\360
D:\360Downloads
D:\360Rec
D:\360SoftMove
D:\Config.Msi
D:\da
D:\Downloads
D:\DriversBackup
D:\eclipse
D:\java web整合开发和项目实战
D:\Lenovo
D:\MSOCache
D:\Program
D:\Program Files
D:\python
D:\RECYGLER.{8F92DA15-A229-A4D5-B5CE-5280C8B89C19}
D:\System Volume Information
D:\Tomcat6
D:\var
D:\vod_cache_data
D:\新建文件夹
通过比较可以指定,使用listFiles更加方便、
【案例7】判断一个指定的路径是否为目录
- /**
- * 使用isDirectory判断一个指定的路径是否为目录
- * */
- import java.io.*;
- class hello{
- public static void main(String[] args) {
- String fileName="D:"+File.separator;
- File f=new File(fileName);
- if(f.isDirectory()){
- System.out.println("YES");
- }else{
- System.out.println("NO");
- }
- }
- }
【案例8】搜索指定目录的全部内容
- /**
- * 列出指定目录的全部内容
- * */
- import java.io.*;
- class hello{
- public static void main(String[] args) {
- String fileName="D:"+File.separator;
- File f=new File(fileName);
- print(f);
- }
- public static void print(File f){
- if(f!=null){
- if(f.isDirectory()){
- File[] fileArray=f.listFiles();
- if(fileArray!=null){
- for (int i = 0; i < fileArray.length; i++) {
- //递归调用
- print(fileArray[i]);
- }
- }
- }
- else{
- System.out.println(f);
- }
- }
- }
- }
【运行结果】:
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\framepages\web4welcome_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\help_005fhome_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\help_005fhome_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\home_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\home_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\index_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\index_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\login_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\login_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\modify_005fuser_005finfo_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\modify_005fuser_005finfo_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\register_005fnotify_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\register_005fnotify_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\sign_005fup_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\sign_005fup_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\transit_jsp.class
……