刚开始的时候不懂得IO的概念,觉得很抽象,通过进一步的了解,我学会了对文件的读写,整形、字符、字节如何转换,还完成了一个小的项目:文件搜索器,现在还不完善,相信以后会做的更好。
下面看下我的结果
下面是搜索后的结果,有待改善
下面是代码:
package com.huaxin.br;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
//文件搜索器
public class Test {
JTextArea ar=new JTextArea(27,27);
JTextField file_02=new JTextField(10);
JTextField file_04=new JTextField(5);
JTextField file_03=new JTextField(5);
private int fileCount=0;
private int directorCount=0;
public void test(){
//界面的属性
JFrame f1=new JFrame();
f1.setTitle("搜索");
f1.setSize(500, 500);
f1.setLocation(100, 100);
f1.setLayout(new FlowLayout());
//创建组件
JLabel label_01=new JLabel("路径");
final JTextField file_01=new JTextField(20);
JLabel label_02=new JLabel("关键字");
final JTextField file_02=new JTextField(10);
JLabel label_03=new JLabel("文件夹数量");
//JTextField file_03=new JTextField(5);
JLabel label_04=new JLabel("文件数量");
//JTextField file_04=new JTextField(5);
JButton btn=new JButton("搜索");
//
Dimension demion=new Dimension(48,27);
ar.setPreferredSize(demion);
//将控件添加到窗体上
//f1.add(ar);
//f1.add(btn);
f1.add(label_01);
f1.add(file_01);
f1.add(label_02);
f1.add(file_02);
f1.add(label_03);
f1.add(file_03);
f1.add(label_04);
f1.add(file_04);
f1.add(btn);
f1.add(ar);
//btn.addActionListener();
f1.setVisible(true);
f1.setDefaultCloseOperation(3);
//添加事件监听
btn.addActionListener(
new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String filename =file_01.getText();
String key=file_02.getText();
printFileName(filename,key);
int i=file_03.getColumns();
i= fileCount;
}
}
);
}
public static void main(String [] args){
// File file =new File("E:\\数学");//创建File对象
//File file =new File(String path);
Test t=new Test();
t.test();
}
// 遍历指定目录下的所有文件的文件名
public void printFileName(String path,String key){
File file =new File(path);
if(file.exists()){//判断File是否是文件
if(file.isFile()){//如果是文件
fileCount++;
System.out.println(fileCount);
// ar.append(file.getAbsolutePath())\r\nc;''
ar.append(file.getAbsolutePath()+"\r\n");
//file_03.getText()=fileCount;
ar.append(file.getAbsolutePath().contains(key)+"\r\n");
//ar.append(str)
}
else if(file.isDirectory()){//是文件夹
directorCount++;
System.out.println(directorCount);
File[] files =file.listFiles();
for(int i=0;i<files.length;i++){
File f=files[i];
printFileName(f.getAbsolutePath(), key);
}
}
else {
System.out.println ("路径有误!");
}
}
file_04.setText(directorCount+"");
file_03.setText(fileCount+"");
}
}