ファイル処理Fileクラスの使用

10225 ワード

Fileクラス:
Fileクラスはjavaにあります.ioパッケージでは、Fileオブジェクトの方法でファイルオブジェクトを作成したり、ファイルを削除したり、リストディレクトリの下のファイルをリストしたりすることができます.
ファイルのディレクトリが正式なファイルかどうかを判断するには、ファイルシステムの基本的なルールは次のとおりです.
1、ファイルのフルネームはファイルのパス名と拡張子を含み、単独でファイル名を話す場合、パスを持たないが拡張子を持つファイル民である.
2、同じディレクトリの下に同名のディレクトリと真実のファイルが存在することは不可能で、システムは主にディレクトリタイプのファイルと真実のファイルの2種類があって、真実のファイル
拡張子がなくてもいいし、計算を必要としない3つ目もあります.たとえば、仮想メモリファイル;
3、相対ディレクトリとは、パス区切り記号で始まるファイルパスを指します.絶対ディレクトリとは、ルートディレクトリファイルで始まるパスです.現在のディレクトリの相対値
プログラム実行時のディレクトリから算出される相対パス.
4、ディレクトリ区切り記号とパス区切り記号はliunxとwindowプラットフォームで異なり、前者は「/」と「:」、後者は「」と「;」である.
したがって、プログラムにハードコーディングするのではなく、Fileクラスが提供する対応する属性値を使用します.
    
Fileクラスの詳細については、APIドキュメントの説明を参照してください.
Fileクラスのコンストラクタ:
File(File parent, String child)
parent抽象パス名とchildパス名文字列に基づいて新しいFileインスタンスを作成
File(String pathname)
指定したパス名文字列を抽象パス名に変換することで、新しいFileインスタンスを作成します.
File(String parent, String child)
parentパス名文字列とchildパス名文字列に基づいて新しいFileインスタンスを作成します.
        
Fileクラスの重要な方法:
boolean createNewFile()
この抽象パス名で指定された名前のファイルが存在しない場合にのみ、新しい空のファイルを分割できません.
         
    boolean delete()
この抽象パス名が示すファイルまたはディレクトリを削除します.
   
    boolean exists()
この抽象パス名が示すファイルまたはディレクトリが存在するかどうかをテストします.
         
    String getAbsolutePath()
この抽象パス名の絶対パス名文字列を返します.
         
    boolean isDirectory()
この抽象パス名が示すファイルがディレクトリであるかどうかをテストします.
         
    boolean isFile()
この抽象パス名が示すファイルが標準ファイルであるかどうかをテストします.
         
long length()
この抽象パス名で表されるファイルの長さを返します. 
String[] list()
抽象パス名が表すディレクトリ内のファイルとディレクトリを指定する文字列配列を返します.
         
    File[] listFiles()
この抽象パス名が示すディレクトリ内のファイルを表す抽象パス名配列を返します.   
         
     String getName()
この抽象パス名で表されるファイルまたはディレクトリの名前を返します.
         
異常:異常とは、プログラムサブが実行された場合、外部条件との変更によりプログラムがエラーになる場合があります.
JAvaの異常概念はクラスに設計され、java.langパッケージの下のExceptionクラスは、異常がたくさんあります
種類———すべてExceptionのサブクラスです
try catch処理メカニズム
try{
異常なコードを投げ出す可能性があります...
//問題処理がない場合は、次のコードを実行します
その他の計算コード....
}
catch(Exception ef){
//異常が発生した場合のコード
異常が発生した計算コード.....
}

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JComboBox;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class ButtonListener implements ActionListener{

	
	private JComboBox jcb1,jcb2;
	
	private JTextArea jta;
	
	private JTextField jtf;
//	          
	public ButtonListener(JComboBox jcb1,JTextField jtf,JComboBox jcb2,JTextArea jta){
		this.jcb1 = jcb1;
		this.jtf = jtf;
		this.jcb2 =jcb2;
		this.jta = jta;
	}
//	     
	public void actionPerformed(ActionEvent e) {
		String path1 = (String) jcb1.getSelectedItem();
		String path2 = jtf.getText();
		String path3 = (String) jcb2.getSelectedItem();
		System.out.println(path1);
		System.out.println(path2);
		System.out.println(path3);
		
		if(path1=="  "){
			File[] file = File.listRoots();
			for(int i=0;i<file.length;i++){
				SearchFile sf = new SearchFile(jta,file[i].getAbsolutePath(),path2,path3);
				sf.start();
			}
			System.out.println(file.length+"          ~~~~~");
		}
		else {
			System.out.println("path2="+path2);
		SearchFile search = new SearchFile(jta,path1,path2,path3);
		search.start();
		}
	}

}


import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Filetest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Filetest filetest = new Filetest();
		filetest.initUI1();
	}
	
	public void initUI(){
//		       
		JFrame jf = new JFrame ();
		jf.setSize(800, 600);
		jf.setDefaultCloseOperation(3);
		jf.setLocationRelativeTo(null);
		jf.setResizable(false);
//		       
		JPanel jp1 = new JPanel();
		jf.add(jp1);
//		  
		JFileChooser jfc = new JFileChooser();
		jp1.add(jfc);
//		  
		JButton jb = new JButton("    ");
//		     
		ActionListener al = new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				if(e.getActionCommand()=="    "){
					Filetest filetest = new Filetest();
					filetest.initUI1();
				}
			}
			
		};
		jb.addActionListener(al);
		jp1.add(jb);
		
		jf.setVisible(true);//     
	}
	
	public void initUI1(){
		JFrame jf = new JFrame ();
		jf.setSize(800, 600);
		jf.setDefaultCloseOperation(3);
		jf.setLocationRelativeTo(null);
		jf.setResizable(false);
		
//		      
		FlowLayout fl = new FlowLayout(FlowLayout.LEFT,25,0);
		
//		       
		JPanel jp = new JPanel();
		jf.add(jp);
		jp.setLayout(fl);
		
		
//		             
		JLabel jl1 = new JLabel("  :");
		jp.add(jl1);
//		        
		JComboBox jcb1 = new JComboBox();
		jcb1.setPreferredSize(new Dimension(80,30));
		jcb1.addItem("  ");
		jcb1.addItem("C:\\");
		jcb1.addItem("D:\\");
		jcb1.addItem("E:\\");
		jcb1.addItem("F:\\");
		jp.add(jcb1);
		
//		              
		JLabel jl2 = new JLabel("   :");
		jp.add(jl2);
//		          
		JTextField jtf = new JTextField();
		jtf.setPreferredSize(new Dimension(200,30));
		jp.add(jtf);
		
//		          
		JLabel jl3 = new JLabel("   :");
		jp.add(jl3);
		JComboBox jcb2 = new JComboBox();
		jcb2.setPreferredSize(new Dimension(80,30));
		jcb2.addItem("  ");
		jcb2.addItem(".txt");
		jcb2.addItem(".rmvb");
		jcb2.addItem(".jpg");
		jcb2.addItem(".mp3");
		jcb2.addItem(".exe");
		jcb2.addItem(".gif");
		
		jp.add(jcb2);
		
//		  
		JButton jb = new JButton("    ");
		jp.add(jb);
		

		
//		          
		JTextArea jta = new JTextArea(20,65);
		JScrollPane jsp = new JScrollPane(jta);
		jp.add(jsp);
		jta.setFont(new Font("  ",Font.BOLD,20));
		jta.append("            ~~~~~~~~~~"+"
"); // ButtonListener bl = new ButtonListener(jcb1,jtf,jcb2,jta); jb.addActionListener(bl); jf.setVisible(true); } }


import java.io.File;

import javax.swing.JTextArea;
import javax.swing.JTextField;

public class SearchFile extends Thread{
	
	private String path1,path2,path3;
	
	private JTextArea jta;
//	           
	public SearchFile(JTextArea jta,String path1,String path2,String path3){
		this.jta = jta;
		this.path1 = path1;
		this.path2 = path2;
		this.path3 = path3;
	}
	
//	      :       start()   ,      run        
	public	void  run(){
		long start = System.currentTimeMillis();//      
		
		int filecount = this.printpath(path1);
		
		long timecost = (System.currentTimeMillis()-start)/1000;
		
		jta.append("  :"+timecost+" \t"+"   "+path1+" "+path2+path3+"    :"+filecount+"
"); } // public int printpath(String path){ int filecount=0;// File file = new File(path);// File[] filelist = file.listFiles();// // if(filelist==null){ return filecount; } for(int i=0;i<filelist.length;i++){// if(filelist[i].isDirectory()){// String dirlist = filelist[i].getAbsolutePath();// filecount+=printpath(dirlist); }//end if(filelist[i].isFile()){// // path3 if(path3==" "){ // String path1_1 ; String path1 = filelist[i].getAbsolutePath(); int s = path1.lastIndexOf('\\'); int e = path1.lastIndexOf('.'); if(e>s){ path1_1 = path1.substring(s+1, e); // System.out.println(" "+path1_1); } else { path1_1 = path1.substring(s+1); // System.out.println(" "+path1_1); } // path2 if(!path2.isEmpty()){ // path2 if(path1_1.equals(path2)){ filecount++; String filepath = filelist[i].getAbsolutePath(); jta.append(" :"+filepath+"
"); } } else{ filecount++; String filepath = filelist[i].getAbsolutePath(); jta.append(" :"+filepath+"
"); } }//end if // path3 else { if(filelist[i].getAbsolutePath().endsWith(path2+path3)){ filecount++; String filepath = filelist[i].getAbsolutePath(); jta.append(" :"+filepath+"
"); } } }//end }//end return filecount; } }