9.26 Java io流学习总结

Java中把数据的传输称为"流"。Java中的"流"都在Java.io包中,称为io流。
io流有许多种,按照操作数据的不同,可以分为字节流和字符流,按照数据传输方向的不同又可分为输入流和输出流,
程序从输入流中读取数据,向输出流中写入数据。
若我们想文本文件写文字 输出流 (写入数据),只能从中读取数据,而不能向其写入数据。
若我们想读取文本文件的文字 输入流 (读取数据),只能向其写入数据,而不能向其读取数据。

File

File:文件或目录(文件夹) 路径名的抽象表示形式 个人理解:就是用来创建文件或者目录的。
构造方法:
File(File parent, String child): 根据一个父File对象和一个子文件[目录]得到File对象
File(String pathname):根据一个路径得到File对象
File(String parent, String child):根据一个目录和一个子文件[目录]得到File对象
例子:

	File f1 = new File("F:\\File练习题\\a.txt");(这里得到的是一个File对象,是根据路径得到的对象并不是说这里就创建了一个文件,其中 \\ 等于windows中的 \ ,或者用 / 代表windows中的 \ )
	File f2 = new File("F:/File练习题", "a.txt");
	File f3 = new File(f1,"a.txt");

1.创建功能:
public boolean createNewFile():创建文件, 如果存在这样的文件,就不创建了。
public boolean mkdir():创建文件夹,如果存在这样的目录,就不创建了
public boolean mkdirs():创建文件夹,如果父目录不存在,则帮你创建

例如:

File f1 = new File("F:\\File练习题\\a.txt");
try {
	System.out.println(f1.createNewFile());
} catch (IOException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}
File f2 = new File("F:\\File练习题\\b.txt");
System.out.println(f2.mkdir());

File f3 = new File("F:\\File练习题\\javaTest\\demo");
	f3.mkdirs();

2.删除功能:

	public boolean delete():

注意:
A.如果你创建文件或者目录忘了写盘符路径,那么默认下项目目录路径下
B.Java中的删除是不走回收站的
C.要删除一个目录,请注意该目录内不能包含目录或者文件(就是说如果你要删除的那个文件夹(目录)里还有其他文件或文件夹(目录)就不能删除)。

例如:

	System.out.println(f4.delete());//删除文件
	File f5 = new File("F:\\File练习题");
	System.out.println(f5.delete());//File练习题下还有其他文件,所以不能删除

3.重命名功能:
public boolean renameTo(File dest)
如果路径名相同,就是改名
如果路径名不相同,就是改名并剪切

例如:

File f1 = new File("F:\\File练习题\\javaTest");
File f3 = new File("F:\\File练习题");

File f2 = new File(f1,"a.txt");

//重命名
boolean renameTo2 = f2.renameTo(new File(f1,"b.txt"));
System.out.println(renameTo2);

5.判断功能:
public boolean isDirectory():判断是否是目录

File f = new File("E:\\javaTest\\demo");
	File f1 = new File(f, "1");
	System.out.println(f1.isDirectory());//false
	System.out.println(f.isDirectory());//true

public boolean isFile():判断是否是文件

System.out.println(f.isFile());//false
System.out.println(f1.isFile());//true

public boolean exists():判断是否存在

System.out.println(new File("e:\\aa").exists());//false
	System.out.println(f1.exists());//true
	System.out.println(f.exists());//true

public boolean canRead():判断是否可读

System.out.println(f1.canRead());//true

public boolean canWrite():判断是否可写

System.out.println(f1.canWrite());//false

public boolean isHidden():判断是否隐藏

System.out.println(f1.isHidden());//false

6.获取功能

public String getAbsolutePath():获取绝对路径

File f1 = new File("F:\\File练习题\\javaTest");
	File f2 = new File(f1,"b.txt");
	System.out.println(f2.getAbsolutePath());
	System.out.println(f1.getAbsolutePath());

public String getPath():获取相对路径

System.out.println(f2.getPath());//F:\File练习题\javaTest\b.txt

public String getName():获取名称

System.out.println(f2.getName());//b.txt

public long length():获取长度,字节数

System.out.println(f2.length());

public long lastModified():获取最后一次的修改的时间,毫秒数

f2.lastModified();

public String[] list():获取指定目录下的所有文件或者目录的名称数组

String[] list = f1.list();
System.out.println(Arrays.toString(list));

public File[] listFiles():获取指定目录下的所有文件或者目录的File数组

File[] listFiles = f1.listFiles();
	for (File file : listFiles) {
		System.out.println(file.getName()+"是否是文件:"+file.isFile());
		if(file.isFile()) {
			file.delete();
		}
	}

File 练习题:
判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称

File f = new File("e:/");	
File[] listFiles = f.listFiles();
for (File file : listFiles) {
	if(file.isFile()){
		if(file.getName().endsWith(".jpg")){
			System.out.println(file.getName());
		}
	}
}

文件过滤器:
public String[] list(FilenameFilter filter)
public File[] listFiles(FilenameFilter filter)
还是上面的例子:

String[] list = f1.list(new FilenameFilter() {
		
	@Override
	public boolean accept(File dir, String name) {
	//dir 表示就是指定的目录  name:指定目录下的子目录或者文件的名称
		return new File(dir,name).isFile()&& name.endsWith(".jpg");
	}
});
System.out.println(Arrays.toString(list));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值