IO的知识

IO知识点

一、
1.1、流的解释及种类
Java中的“流”都位于java.io包中,称为IO(输入/输出)流,
流的解释为:通过不同输入/输出设备(键盘,内存,显示器,网络等)之间的数据传输抽象表述为“流”

1.2、IO流的种类
IO流有很多种,按照操作数据的不同,可以分为字节流和字符流,按照数据传输方向的不同又可分为输入流和输出流,
程序从输入流中读取数据,向输出流中写入数据。
例如:

	若我们想文本文件写文字 输出流 (写入数据)
	若我们想读取文本文件的文字 输入流 (读取数据)

1.3、file的定义
就是用来创建文件或者目录的
(1)file的构造方法

			File(File parent, String child): //根据一个父File对象和一个子文件[目录]得到File对象
			File(String pathname)://根据一个路径得到File对象
			File(String parent, String child)://根据一个目录和一个子文件[目录]得到File对象 

例1:

package com.FileDmeo;
mport java.io.File;
public class FileDemo1 {
public static void main(String[] args) {
	// TODO Auto-generated method stub
	File f=new File("E:/a/demo.txt");		//磁盘名不区分小写,java只能识别对象,不能识别字符串
	System.out.println(f);
	
	File f1=new File("e:\\b","demo1.txt");
	System.out.println(f1);
	
	File f2=new File("e:/c");
	File f3=new File(f2,"demo3.txt");
	System.out.println(f3);
}

}
上述三个构造方法的作用是一样的,用于创建文件或文件目录(文件夹),windows中只存在文件夹跟文件
(2)file的创建功能

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

例2:

	package com.FileDmeo;
	import java.io.File;
	import java.io.IOException;
	
	public class FileDemo2 {
public static void main(String[] args) throws IOException {
	
	File f3=new File("e:/javahome/c.txt");
	boolean mkdir2 = f3.mkdirs();			//创建目录
	System.out.println(mkdir2);
	
	File f4=new File("e:/javahome/a.txt");
	boolean createNewFile = f4.createNewFile();			//创建文件
	System.out.println(createNewFile);
	
	File f5=new File("e:/javahome");
	File f6=new File(f5,"b.txt");
	boolean createNewFile2 = f6.createNewFile();
	System.out.println(createNewFile2);
	
}

}
(3)file的删除功能

	public boolean delete():

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

	package com.FileDmeo;
	import java.io.File;
	public class FileDemo3 {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	File f1=new File("E:/a");
	
	File f2=new File(f1,"a.txt");
	System.out.println(f2.delete());	//删除目录下的文件
	System.out.println(f1.delete());	//删除目录,如果目录下有文件或者是目录下有目录。则不能删除当前目录
	}

}
(4) file的重命名功能(renameTo)
public boolean renameTo(File dest)
如果路径名相同,就是改名
如果路径名不相同,就是改名并剪切
例4:

package com.FileDmeo;

	import java.io.File;
	import java.io.IOException;
	
	public class FileDemo4 {

public static void main(String[] args) throws IOException {
	// TODO Auto-generated method stub
	File f4=new File("e:/javahome");
	File f5=new File(f4,"a.txt");
	boolean renameTo = f5.renameTo(new File(f4,"z.txt"));
	System.out.println(renameTo);
	
}

}
(5)file的判断功能

public boolean isDirectory():判断是否是目录
public boolean isFile():判断是否是文件
public boolean exists():判断是否存在
public boolean canRead():判断是否可读
public boolean canWrite():判断是否可写
public boolean isHidden():判断是否隐藏

(6) file的获取功能

public String getAbsolutePath():获取绝对路径
public String getPath():获取相对路径
public String getName():获取名称
public long length():获取长度,字节数
public long lastModified():获取最后一次的修改的时间,毫秒数

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

package com.fileDemo;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FileDemo2 {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	File f=new File("E:\\javahome\\c");
	File f1=new File(f,"b.txt");
	System.out.println(f1.getAbsolutePath());
	System.out.println(new File("55").getPath());	//new File("55")是在工程路径下的包名
	long lastModified = f1.lastModified();	//获得最后一次修改的时间,值为毫秒值
	Date d=new Date(lastModified);		//把毫秒值传入Date
	String s =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d);	//通过SimpleDateFormat转换成格式
	System.out.println(s);
	System.out.println(f1.length());
	System.out.println(f1.getName());

	File f2=new File("E:\\javahome");	//当前目录下查找
		String[] list = f2.list();	//获得当前目录下所有的目录或者文件
		List<String> asList = Arrays.asList(list);	//将数组变为集合,Arrays是操作数组的集合, alist是将数组转换成列表的方法
	System.out.println(asList);
	
	File[] listFiles = f.listFiles();		//获得当前目录下所有的目录或者文件
		for (File file : listFiles) {	//遍历这个目录下的每一个文件或者目录
		System.out.println(file.getName()+" "+file.isFile());		//输出名称,判断是否为文件
	}
}

}
(7)listFiles的应用
1.判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称

package com.fileDemo;
import java.io.File;
public class FileDmeo3 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File f=new File("E:/");	//把E盘变成File对象
		File[] listFiles = f.listFiles();	//获得E盘下的所有目录跟文件
		for (File file : listFiles) {	//遍历E盘下的所有目录跟文件
			if(file.isFile()){				//判断是否为文件
				if(file.getName().endsWith(".JPG")){	//判断文件的末尾是不是一 .jpg结尾
					System.out.println(file.getName());	//获得文件名
				}
				
			}
		}
	}

}

第二种方法(文件过滤器)

	package com.fileDemo;
	import java.io.File;
	import java.io.FilenameFilter;
	public class FileDmeo4 {
	public static void main(String[] args) {
	// TODO Auto-generated method stub
	File f=new File("E:/");
	String[] s =f.list(new FilenameFilter() {	//创建文件过滤器,定义一个字符串接收

		@Override
		public boolean accept(File dir, String name) {
			// TODO Auto-generated method stub
			File f1=new File(dir,name);		//创建对象接收
			if(f1.isFile()&&f1.getName().endsWith(".JPG")){		//判断条件
				return true;
			}
			return false;
		}
	});
	for (String string : s) {				//遍历字符串,输出目录下的文件
		System.out.println(string);
	}
}

}

总结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值