文件遍历

遍历目录是操作文件时的一个常见需求。比如写一个程序,需要找到并处理指定目录下的所有JS文件时,就需要遍历整个目录。该项目教会你如何使用流式编程和lambda表达式,帮助你进一步熟悉java8特性,并且通过它实现目录遍历。

看了很多遍历文件的代码,看到自己都头大。递归的还可以理解,lambda那个是真的有些不理解。

最后就是设计一个界面,让这个文件遍历得以在界面里面运行。都很简单,我还是硬啃了一个小时。毕竟原本想把一个类里面的方法调出来,但是只能在控制台输出。没办法,把递归的又写了一遍。

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.io.*;

public class SFWindow extends JFrame implements ActionListener{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JLabel label1,label2;//两个标签,一个提醒输入,一个提箱输出。
	private JButton button;//一个按钮,方便监听实现
	private JPanel panel1,panel2;//两个面板,一个中间一个南面
	private static JTextArea textarea1;
	private static JTextArea textarea2;
	//两个多行文本框,一个输入一个输出
	
	public SFWindow() {
		label1=new JLabel("请输入文件的绝对路径:");
		textarea1=new JTextArea(1,15);
		button=new JButton("确定");
		button.addActionListener(this);
		panel1=new JPanel();
		panel1.add(label1);
		panel1.add(textarea1);
		panel1.add(button);
		
		label2=new JLabel("遍历文件结果:");
		textarea2=new JTextArea(4,15);
		panel2=new JPanel();
		panel2.add(label2);
		panel2.add(textarea2);
		
		this.add(panel1,BorderLayout.CENTER);
		this.add(panel2,BorderLayout.SOUTH);
		
		this.setTitle("文件目录查询");
		this.setSize(340,270);//设置界面大小
		this.setVisible(true);
	}
    //主函数,创建并运行
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SFWindow sfw=new SFWindow();
		sfw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		

	}
	//递归法遍历文件,并输出到多行文本框
	public static void Method(String path) {
		if(new File(path).isDirectory()) {
			String[] childs=new File(path).list();
			for(String child:childs) {
				Method(path+"\\"+child);
				SFWindow.textarea2.append(path+"\\"+child+"\n");
			}
		}
	}
    //监听实现
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		String path=SFWindow.textarea1.getText();
		Method(path);
		
	}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值