学习java的第20天

文件操作

File类

1.1概述
java.io.File类是文件和目录路径名的抽象表示主要用于文件和目录的创建,查找和删除的操作

1.2构造方法
•public File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的file实例。
•public File(String parent ,String child):从父六记名字符串和子路记名字符串创真心的file实例。
•Public File(File parent ,String child):从父抽象路径名和子路径名字符串创建新的file实例。
•构造举例代码如下:

package demo01;

import java.io.File;
import java.io.IOException;
/*

  • file 类
  • 创建一个文件、文件夹
  • 删除一个文件、文件夹
  • 获取文件、文件夹
  • 判断文件或者文件夹
  • 对文件进行遍历
  • 获取文件大小
  • File 是一个与操作系统无关的类
  • 记住三个单词:
  • file :文件
  • directory:目录、文件夹
  • path:路径
  • */

public class Demo01File {
public static void main(String[] args) throws IOException {
//路径分隔符
String pathSeparator=File.pathSeparator;
System.out.println(pathSeparator);//win 是 分号;Linux :冒号
String separator=File.separator;
System.out.println(separator);//文件名称分割符 \ linux : /root/home/
//绝对路径
//相对路径…/…/

	//构造方法演示
	//show01();
	//show02("D:\\xiaojava\\day20_code");
	//show03();
	
	//常用方法演示
	//show04();
	//show05();
	//show06();
	//show07();
	//show08();
	//show09();
	//show10();
	show11();
	//show12();
}
private static void show12() {
	File f1=new File("D:\\xiaojava\\day20_code\\hello.java");
	boolean b1=f1.delete();
	System.out.println(b1);
	//直接从硬盘删除,不会放入回收站
	File f2=new File("1\\2\\33\\44");//相对路径会自动补齐
	boolean b2=f2.delete();
	System.out.println(b2);
}
private static void show11() {
	File f1=new File("D:\\xiaojava\\day20_code\\hello.java");
	boolean b1=f1.mkdir();//只能创建一个文件夹
	System.out.println(b1);
	File f2=new File("D:\\xiaojava\\day20_code\\1\\2\\33\\44\\hello.java");
	boolean b2=f2.mkdir();//递归创建文件夹
	System.out.println(b2);
}
private static void show10() throws IOException {
	File f1=new File("D:\\xiaojava\\day20_code\\hello.java");
	boolean b1=f1.createNewFile();
	System.out.println(b1);
	//第二次执行的时候返回 false 因为文件已经存在
	File f2=new File("D:\\xiaojava\\day20_code\\新建文件夹");
	//不要看文件的名字,必须看类型
	boolean b2=f2.createNewFile();
	System.out.println(b2);
}
private static void show09() {
	File f1=new File("D:\\xiaojava\\day20_code");
	if(f1.exists()) {
	System.out.println(f1.isDirectory());
	System.out.println(f1.isFile());
	}
}
private static void show08() {
	File f1=new File("D:\\xiaojava\\day20_code");
	System.out.println(f1.exists());
	File f2=new File("D:\\rxp\\java\\20\\day20_code\\classfive");
	System.out.println(f2.exists());
	File f3=new File("D:\\rxp\\java\\20\\day20_code\\classpath");
	System.out.println(f3.exists());
	File f4=new File("D:\\rxp\\java\\20\\day20_code\\hello.java");
	System.out.println(f4.exists());
}
//注意:文件夹没有大小概念,不能获取文件夹大小
private static void show07() {
	File f1=new File("D:\\xiaojava\\day20_code");
	System.out.println(f1.length());//文件夹的大小是0
	File f2=new File("D:\\rxp\\java\\20\\day20_code\\classfive");
	System.out.println(f2.length());//不存在文件夹,打印大小为0
	File f3=new File("D:\\rxp\\java\\20\\day20_code\\classpath");
	System.out.println(f3.length());//最后为文件的情况,去文件存在,打印大小为
	File f4=new File("D:\\rxp\\java\\20\\day20_code\\classpath");
	System.out.println(f4.length());
}
private static void show06() {
	File f1=new File("D:\\rxp\\java\\20\\day20_code\\hello.java");
	File f2=new File("D:\\rxp\\java\\20\\day20_code");
	System.out.println(f1.getName());
	//获取的是构造方法传递路径结尾部分
	System.out.println(f2.getName());
}
	
private static void show05() {
	File f1=new File("D:\\rxp\\java\\20\\day20_code\\hello.java");
	File f2=new File("a.txt");
	String path1=f1.getPath();
	System.out.println(path1);
	System.out.println(f2.getPath());
	System.out.println(f1);
	System.out.println(f1.toString());
}

	

private static void show03() {
	// TODO 自动生成的方法存根
	
}
private static void show04() {
	File f1=new File("D:\\rxp\\java\\test\\hello.java");
	String absolutepath1=f1.getAbsolutePath();
	System.out.println(absolutepath1);
	File f2=new File("hello.java");//相对路径创建
	//创建的时候,放在项目路径下面
	String absolutepath2=f2.getAbsolutePath();
	System.out.println(absolutepath2);//获取绝对路径
	
}

//private static void show01() {
	File f1=new File("D:\\rxp\\java\\test");
	//System.out.println(f1);
	File f2=new File("D:\\\\rxp\\\\java\\\\test\\\\hello.java");
	//仅仅是创建了File这样的对象,并不会真去检验路径的正确与否
	///System.out.println(f2);
//}
private static void show02(String parent, String child) {
	File f1=new File(parent,child);
	System.out.println(f1);
	
}
private static void show01() {
	File f1=new File("D:\\rxp\\java\\test");
	System.out.println(f1);
	File f2=new File("D:\\rxp\\java\\test");
}


1.3判断功能的方法
•public boolean exists():此file表示的文件或目录是否实际存在?
•public boolean is directory():此file表示的是否为目录?
•public boolean isFile():此file表示的是否为文件?

1.4目录的遍历
•public String[] list():返回一个string数组,表示该file目录中的所有子文件或目录
•public File list File():返回一个file数组,表示该file目录中的所有的子文件或目录

io的分类

根据数据流向分为输入流和输出流
输入流把数据,从其他设备上读取到内存中的流

输出流把数据从内存中写出到其他设备上的流

FiOueOutStream

OutputStream有很多子类,我们从最简单的一个子类开始
java.iO.FileOutputStream类是文件输出你了,用于将数据写到文件中
构造方法
•public FileOutputStream(File file):创建文件输出你哦,已写入有指定的file对象表示的文件
•public FileOutputStream(String name):创建文件输出流一指定的名称写入文件。
当你创建一个流对象时,必须传入一个文件路径,该路径下,如果没有这个文件,会创建该文件,如果有这个文件,会清空这个文件的数据。
写出字节数据
1.写出字节write(int b)方法,每次可以写出一个字节数据代码如下

代码如下:
package demo02;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*

  • 构造方法的作用:
  • 1.创建了一个FileOutputStream对象
  • 2.根据构造方法中传递的文件/文件路径,创建一个空文件
  • 3.会把FileOutputStream对象指向创建的文件
  • 写入过程
  • java程序 -->jvm(java虚拟机) ==>os(操作系统上) —>会调用对应的驱动 --> 把数据写入文件

/
public class Demo02OutputStream {
public static void main(String[] args) throws IOException {
//创建一个FileOutputStream 对象,构造方法中传入数据目的地
FileOutputStream fos=new FileOutputStream(“a.txt”);
//调用write方法,讲数据写入到文件中
//fos.write(97);
//fos.write(98);
//fos.write(98);
//释放资源
fos.write(97);
//fos.write(100);错误写法
/

fos.write(49);
fos.write(48);
fos.write(48);
*/
//byte[] bytes= {65,66,67,68};
//byte[] bytes= {-65,-66,-67,-68};//会被当成中文翻译
byte[] bytes= {65,66,67,68};
fos.write(bytes,2,3);
fos.close();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值