java中的IO 流


1:I/O 流
 Input/Output  输入/输出流
 
     流->具有接收数据的能力的客户端 或者产生数据的数据源
2:为什么要使用I/O 流?
     计算机cpu不能直接读取硬盘,只能读内存,
     而内存中的数据,不能长久存在。

而I/O 流可以把硬盘的数据读取到内存中去,
也可以把内存中的数据写入到硬盘中

3:java File 操作  
常用方法:
                              System.out.println(file.getName());//文件名
                             System.out.println(file.canRead());//是否可读
                             System.out.println(file.canWrite());//是否可写
                             System.out.println(file.isHidden());//是否隐藏
                             System.out.println(file.length());//文件长度
                             System.out.println(file.isFile());//是否是文件
                             System.out.println(file.isDirectory());//是否是文件夹
                             System.out.println(file.getAbsolutePath());//得全路径
delete();//删除文件
exists()
createNewFile()创建一个文件
mkdir()创建一个文件夹
mkdirs()创建一个文件夹
.list() 获取所有文件名 
.list(FilenameFilter filter); 根据文件名字名过滤文件
listFile() 获取所有文件
listFile(FileFilter filter )根据文件过滤文件
     读写文件

package com.zt;

import java.io.File;

public class FileDemo {
          public static void main(String[] args) {
                   //File file =new File("E:/培训/java/RemoteSystemsTempFiles"); 第一种方法
                   File file =new File("E:\\培训\\java\\ssss");//第二种方法
          //      File file =new File("E:"+File.separator+"培训"+File.separator+"project1"+File.separator+"CSS3电子相册");
                   //第三种方法       //File.separator 代表各个平台目录和子目录之间的连接符
                   if (file.exists()) {//如果文件存在
                             //System.out.println("文件存在!");
                             System.out.println(file.getName());//文件名
                             System.out.println(file.canRead());//是否可读
                             System.out.println(file.canWrite());//是否可写
                             System.out.println(file.isHidden());//是否隐藏
                             System.out.println(file.length());//文件长度
                             System.out.println(file.isFile());//是否是文件
                             System.out.println(file.isDirectory());//是否是文件夹
                             System.out.println(file.getAbsolutePath());//得全路径
                             file.delete();//删除文件
                   }else{
                             System.out.println("文件不存在的!");
                             try {
                                      file.createNewFile();//如果不存在则创建一个文件
                             } catch (Exception e) {
                             e.printStackTrace();
                             }
                   }
          }
}

eg:输出E:\\培训\\project1文件夹下的所有子文件夹和子文件

public static void main(String[] args) {
          File file =new File("E:\\培训\\project1");//第二种方法
          myFilenameFilter filter=new myFilenameFilter();
          if (file.exists()&&file.isDirectory()) {
                   String nams[]=file.list(filter);
                   for (String string : nams) {
                             System.out.println(string);
                   }

          }
}

eg:输出E:\\培训\\project1文件夹下的所有的文件夹和文件

package com.zt;

import java.io.File;

public class ListAllFileDemo {
          public static int  count(File file,String path) { //定义一个计算替换后路径还有几个File.separator目录连接符
                   int count =0;
                   String absolutePath =file.getAbsolutePath();
                   String filePathString=absolutePath.replace(path, "");
                   String filePath =filePathString.replace(File.separator, "");
                   int length1=filePathString.length();
                   int length2=filePath.length();
                   count=length1-length2;
                   return count;

          }
          public static  void  showFile(File file) {
                   if (file.isDirectory()) {
                             System.out.println(file.getName());
                   File fs []=   file.listFiles();
                   for (File file2 : fs) {
                             if (file2.isFile()) {
                             int count1=          count(file2,"E:"+File.separator+"培训"+File.separator+"project1"+File.separator+"CSS3电子相册");
                                      for (int i = 0; i <count1; i++) {
                                                System.out.print("\t");
                                      }
                                      System.out.println(file2.getName());
                             }else{
                                      int count1=          count(file2,"E:"+File.separator+"培训"+File.separator+"project1"+File.separator+"CSS3电子相册");
                                      for (int i = 0; i <count1; i++) {
                                                System.out.print("\t");
                                      }
                                      showFile(file2);
                             }
                   }
                   }else {
                             //防止输入的路径不是个文件夹的情况
          System.out.println(file.getName());
                   }
          }

          public static void main(String[] args) {
                   //File.separator 代表各个平台目录和子目录之间的连接符
                   File file =new File("E:"+File.separator+"培训"+File.separator+"project1"+File.separator+"CSS3电子相册");//第二种方法
                   showFile(file);
          }
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值