Java学习--输入流输出流1

所谓的输入流输出流指的是在程序和源、程序和目的地之间搭建的一条通道。输入流的指向称为源,输出流的指向称为目的地,虽然输入流输出流通常的操作的对象指的就是磁盘操作文件,其实程序的源或目的地还可以是键盘、鼠标、显示器等设备。

Java的java.io包中提供了大量的流类,其中以InputStream(OutputStream)为父类的流类称为字节输入(输出)流,以Reader(Writer)为父类的流类称为字符输入(输出)流。

File类

File类是一个文件类,主要用来获取文件的相关信息,不涉及对文件的动态操作(读、写等)。

构造方法

1、File(String fileName)
用该方法创建文件对象时,文件路径默认与程序在同一目录下。

2、File(String directoryPath, String fileName)
directoryPath用来指定文件所在的目录,fileName指定文件名

3、File(File file, String fileName)
file必须是一个被指定为目录的File对象,不能具体的指向了一个文件(简单的说就是file的指向必须是个文件夹)

常用方法

1、public String getName()
获取文件的名字

2、public String getAbsolutePath()
获取文件的绝对路径

3、public long length()
获取文件的大小,字节为单位

4、public String getParent()
获取文件的父目录

5、public boolean canRead()
判断文件是否可读

6、public boolean canWrite()
判断文件是否可以写入

7、public boolean exists()
判断文件是否存在

8、public boolean isHiden()
判断文件是否是隐藏文件

9、public boolean isFile()
判断该对象是不是一个文件

10、public boolean isDirectory()
判断该对象是不是一个目录

11、public long lastModified()
获得文件最后的修改时间

12、public String[] list()
以字符串形式返回该目录下所有文件

13、public File[] listFiles()
以文件对象形式返回该目录下所有文件

14、public String[] list(FilenameFilter filenameFilter)和public File[] list(FilenameFilter filenameFilter)
获取目录下指定类型的文件列表
FilenameFilter是一个接口,使用此方法时必须先实现此接口以及该接口的accept()方法,然后以实现此接口的类的对象为参数。在每一次list方法从目录下获取到一个文件时都会调用accept方法进行比较,看是否时指定类型的文件,如果是则加入列表。
具体实现:

package com.mfs.test.io;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;

import javax.swing.filechooser.FileFilter;

public class FileTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		File file = new File("D:/下载");
		
		//列出全部文件
		String[] list = file.list();
		for(String str : list) {
			System.out.println(str);
		}
		System.out.println(".exe可执行文件。。。。。。。。。。。。。。。");
			
			FileAccept ff = new FileAccept();
			//查找全部以.exe为后缀的文件
			ff.setExtendName("exe");
			String[] list2 = file.list(ff);
			for(File str : list2) {
				System.out.println(str);
			}
			
		}
	

		

	}
	
	//这是在FileTest类内写的一个内部类,实现了FilenameFilter接口
	class FileAccept implements FilenameFilter {

		private String extendName;
		@Override
		public boolean accept(File dir, String name) {
			// TODO Auto-generated method stub
			
			return name.endsWith(extendName);
		}

		public void setExtendName(String s) {
			extendName = "."+s;                           //把后缀前加上"."拼接完整
		}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M FS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值