Java文件操作1

Java支持对文件进行顺序存取和随机存取操作,提供File类记载文件属性信息,对文件的读/写操作通过流实现。

一、File文件操作类可保存文件或目录(windows系统中“目录”有一个更加形象的名字——文件夹)的各种属性(文件名、文件长度、最后修改时间、是否只读等),提供获得当前文件(或目录)的路径名、判定指定文件(或目录)是否存在、获取当前目录中所有文件列表、创建文件、删除文件、创建目录等操作的方法。

二、常见File类构造方法

     public File(String  pathname)//通过将给定路径名字符串转换为抽象路径名来创建一个File实例对象(即:pathname指定文件名

     public File(String parent ,String child)//根据 parent 路径名字符串和 child 路径名字符串创建一个File实例对象    (parent指定目录名,child指定文件或目录名) 

     public File(File parent ,String child)//根据 parent 抽象路径名和 child 路径名字符串创建一个File 实例对象。(parent指定目录名,child指定文件或目录名)

   注:一个 File对象即可以表示文件,也可以表示一个目录

三、常见方法

   public  String  getName( )              //返回文件或目录名

   public  String getPath( )               //返回相对路径名

   public  Sting  getAbsolutePath( )  //返回绝对路径名

   public  long    length( )                   //返回文件字节长度

   public  long    lastModified( )        //返回最后修改时间

   public  boolen   exists( )                 //判定文件或目录是否存在

   public  boolen   canRead()    //判定文件是否可读

   public  boolen   isFile()                //判定当前File类对象是否为文件

   public  boolen   isDirectory()   //判定当前File类对象是否为目录

   public  boolen   setReadOnly()           //设置文件属性为只读

 public  boolen   setLastModified( )       //设置文件或目录最后修改时间

   public   int  compareTo(File pathname)  //比较两个文件对象的内容

   public   boolen  ranemeTo(File dest)       //重命名

   public   boolen  createNewFile( )              //创建新文件

   public   boolen  delete()       //删除文件或目录

   public   boolen  mkdie( )                          // 创建指定目录,正常创建时返回true

   public   String[ ]  list( )                              //返回目录中的所有文件名字符串

   public   File[ ]    listFiles( )                        //返回目录中的所有File类实例对象

注:windows系统中文件或目录的路径由反斜线(\)分隔,在Java字符串中,“\”之后是转义字符,需要使用“\\”

 

四、实例:文件搜索应用

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.io.File;


public class SearchFile extends JFrame{
 private JTextField path_field;
 private JTextField key_field;
 private JTextArea text_area;
 
 public void showUI(){
  setTitle("文件搜索");
  setSize(600,600);
  setLocationRelativeTo(null);
  setDefaultCloseOperation(3);
  setLayout(new FlowLayout());
  JLabel label_path = new JLabel("路径");
  JLabel label_key = new JLabel("关键字");
  
  path_field = new JTextField(20);
  key_field = new JTextField(10);
  
  JButton button = new JButton("搜索");
  
  text_area = new JTextArea(50,30);
      
  button.addActionListener(action_listener);
  add(label_path);
  add(path_field);
  add(label_key);
  add(key_field);
  add(button);
  add(text_area);
  setVisible(true);
 }
 
 ActionListener action_listener = new ActionListener(){
  public void actionPerformed(ActionEvent e){
   text_area.setText("");
   String path = path_field.getText();
   String key =key_field.getText();
   countFile(path,key);
  }
 };
 public void searchFile(String path,String key){
  
  File file = new File(path);
      if(file.exists()){
   if(file.isFile()){
    String fileName = file.getName();
    if(fileName.contains(key)){
     text_area.append(fileName+"\r\n");
    }
   }else if(file.isDirectory()){
    File[] files = file.listFiles();
    if(files!=null){
     for(int i=0;i<files.length;i++){
      searchFile(files[i].getAbsolutePath(),key);   //递归调用
     }
    }
   }
  }else{
   System.out.println("输入的路径有误!");
  }
 }
}

 

 

   

 

                  

  

 

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值