2020-08-23

File类:
代表与平台无关的文件和目录
File能新建创建文件和目录,但file文件不能访问文件内容本身
如果需要访问文件内容本身,则需要使用输入输出流
//使用绝对路径
File f =new File(“F:\filetest\test1.txt”);
//判断文件是否存在
System.out.println(f.exists());
//访问文件名称
String name =f.getName();
System.out.println(name);
//重命名
boolean flag =f.renameTo(new File(“F:\filetest\test1.txt”));
System.out.println(flag);
//是否有权限读写
boolean a =f.canRead();
boolean b =f.canWrite();
System.out.println(a);
System.out.println(b);

	//判断是否为目录
	File file3 =new File("F:\\filetest");
	try {
		file3.createNewFile();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}   //创建文件
	System.out.println("是否目录"+file3.isDirectory());
	System.out.println(f.isDirectory());

//获取修改时间
long time =f.lastModified();

	//获取目录所有文件列表
	String[] dirlist = file3.list();
	for(String i:dirlist){
		
		System.out.println(new File("F:\\filetest\\"+i).isDirectory());
	}

Io流 stream

Java中对于数据处理,以输入输出流的方式进行,按照类型可分为字符,字节流
源文件–————-》程序(内存)————》目标文件
输入流 输出流
//从硬盘设备,读取文件到程序
//f:\filetest ->打印并输出
//input输入流
//节点流,字节输入流
//节点流还是处理流,节点流时从一个特定的设备都写的数据流,也叫文件流(访问文件相关)
// 处理流:对已经存在的流进行封装链接

public static void testFileIo() throws Exception{
	//一。读取文件并打印的过程
	//1.先将文件映射到类中,先创建文件对象
	File file =new File("F:\\filetest\\test1.txt");
	
	//2.搭建一个通道(fileInputStream)
	FileInputStream input = null;
	try {
		input = new FileInputStream(file);
		
		
		//3.通过通道传输字节信息   字节转换方式

// int b =input.read();

		int b =0;
		while((b =input.read())!=-1){
			
			System.out.println((char)b);
		}
		
		
		
		
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		throw new myException();
	}finally{
		//4.关闭通道end
		try {
			input.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

文件复制
public void filecopy(){
FileInputStream input =null;
FileOutputStream output =null;
try {
//1.定义读写文件
File file1 =new File("");
File file2 =new File("");

		//2.定义输入输出流
		input =new FileInputStream(file1);
		output = new FileOutputStream(file2);
		
		//实现文件复制
		byte[] buf =new byte[20];
		int len;
		try {
			while((len =input.read(buf))!=-1){
				output.write(buf,0,len);
				
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}finally {
		try {
			input.close();
			output.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
}

文件写入
FileOutputStream output =null;
File file= new File(“F:\filetest\outtest.txt”);
try {
output =new FileOutputStream(file);

			//内存
			String string ="hello world";
			
			//写入文件
			try {
				output.write(string.getBytes());
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				output.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

处理流
处理流(缓冲流)可以提高文件的操作效率
Bufferedinputstream 处理字节的输入流
Bufferedoutputstream 处理字节的输出流

Bufferedreader 处理字符的输入流
Bufferedwriter 处理文件的输出流
流不可逆
用缓冲流和输入流对接
缓冲流读取数据需要刷新 b.flush()

程序中打开的io文件不属于内存中的资源,垃圾回收机制无法回收该资源,所以应该显示的手动关闭流

Reader 字符流
fileReader
FileWriter

你可能感兴趣的:(java)