java io包中 File的输入输出流(读,写操作)
来源:互联网 发布:mac pink you think 编辑:程序博客网 时间:2024/06/05 11:09
File:
文件可以认为是相关记录或存放在一起的数据的集合。File类的对象不但可以表示文件,还可以表示目录,在程序中一个File类对象可以代表一个文件或目录,主要用来获取文件本身的一些信息。Stream:
根据流动方向的不同,流分为输入流和输出流,对于输入和输出流,由于传输格式的不同,又分为字节流和字符流。
字节流:指8位的通用字节流,以字节为基本单位,在java.io包中,
对于字节流进行操作的类大部分继承于InputStream(输入字节流)类和OutputStream(输出字节流)类
字符流:指16位的Unicode字符流,以字符(两个字节)为基本单位,非常适合处理字符串和文本,
对于字符流进行操作的类大部分继承于Reader(读取流)类和Writer(写入流)类
FileInputStream类和FileOutputStream类是成对出现的,一个进行输入(读文件)操作,一个进行输出(写文件)操作
下面程序用输入输出流实现文件的遍历,即 写一个文件搜索器
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
//import javax.swing.JTextArea;
import javax.swing.JTextField;
public class FileQuery extends JFrame{
private JTextField filed_path;
private JTextField filed_filename;
//private JTextArea show_info;
private TextArea show_info;
private String p;
private String n;
//显示界面
public void showUI(){
//面板属性
this.setTitle("文件搜索器");
this.setSize(700, 700);
this.setDefaultCloseOperation(3);
this.setLocationRelativeTo(null);
this.setLayout(new FlowLayout());
//组件
JLabel label_path = new JLabel("路径:");
JLabel label_name = new JLabel("文件名:");
filed_path = new JTextField(15);
filed_filename = new JTextField(10);
JButton button_search = new JButton("搜索");
show_info = new TextArea(39,70);
show_info.setBackground(Color.orange);
//给按钮添加事件监听
button_search.addActionListener(action_listener);
//添加属性到窗体上
this.add(label_path);
this.add(filed_path);
this.add(label_name);
this.add(filed_filename);
this.add(button_search);
this.add(show_info);
//设置面板可见
this.setVisible(true);
}
//创建事件监听对象
ActionListener action_listener = new ActionListener(){
//抽象方法
public void actionPerformed(ActionEvent e){
//得到用户信息
p = filed_path.getText();
n = filed_filename.getText();
//创建线程类对象
MyThread thread = new MyThread();
thread.start();
}
};
//遍历文件
public void queryFile(String path){
File file = new File(path);
if(file.exists()){
if(file.isFile()){//文件
//System.out.println(file.getAbsolutePath());
if(file.getAbsolutePath().contains(n)){
//显示当前文件的名字到输入区域
show_info.append(file.getAbsolutePath()+"\r\n");
}
}else if(file.isDirectory()){ //文件夹
File[] files = file.listFiles();
if(files!=null){
for(File f:files){
queryFile(f.getAbsolutePath());
}
}
}
}
}
//创建内部类实现线程
public class MyThread extends Thread {
//重写run方法
public void run() {
//查询
queryFile(p);
}
}
public static void main(String[] args){
FileQuery fq = new FileQuery ();
fq.showUI();
}
}
程序运行如下:
查文件
- java io包中 File的输入输出流(读,写操作)
- Java中输入输出(IO)和流的基本概念
- NO.63 [file]IO常用工具类IOUtils(Java读文件、写文件、打Zip包)
- [file]IO常用工具类IOUtils(Java读文件、写文件、打Zip包)
- JAVA.io包,输入输出流整理
- Java输入输出(IO)操作
- 92、java的IO操作-标准输入输出流
- Java.io包中的流的输入输出详解1(字节流)
- Java.io包中的流的输入输出详解2(字符流) .
- 黑马程序员-IO流输入输出-字节流File读写操作
- java中对IO文件的操作(读,写,增加一行,删除一行,删除文件)
- Java 的文件(读 写)输入输出
- JAVA输入输出流(IO)
- Java中IO流的File类
- 黑马程序员-----java中io输入输出流
- Java中IO输入输出流介绍
- Java的IO输入输出
- C#操作IO(输入输出流)
- jQuery Mobile 学习查询资料网站
- 将win7电脑变身WiFi热点,让手机、笔记本共享上网
- compile x264 for Android on Mac
- TextView的属性
- Android ContentProvider 应用程序间共享数据库
- java io包中 File的输入输出流(读,写操作)
- 最近开始了今年的python的学习计划
- cocos2d-x 在win7下vs2010环境搭建
- 微信后续的质问思考
- socket网络编程
- 我们应该怎么写程序?
- 队列的链接存储结构---链队列
- 微软技术沙龙 思考 体验 真正的中国网络技术
- 笔记——Annotation 注解(hibernate3版本)