java基础之bio详解

File

创建文件夹

//创建file对象
	File f=new File("d:\\test111");
	//如果不存在则创建文件
	if(!f.exists()){
			f.mkdir();
		}

创建文件

File f=new File("d:\\test111\\a.txt");
		//如果不存在则创建文件夹
		if(!f.exists()){
		f.createNewFile();
		}

展示目录的所有文件

File f=new File("d:\\test111");
		//f文件目录的所有文件
		File[] files = f.listFiles();
		for(File file:files){
			//输出文件以及文件夹的名字
			System.out.println(file.getName());
		}

递归删除文件

public static void delDir(File file) {
	    	//如果是文件夹
		if (file.isDirectory()) {
			//文件夹下所有文件
			File zFiles[] = file.listFiles();
			for (File file2 : zFiles) {
				//递归删除
				delDir(file2);
			}
			//删除当前目录的文件
			file.delete();
		} else {
			//如果不是文件夹直接删除
			file.delete();
		}
	}

FileInputStream和FileOutputStream

 

//创建文件输入流对象
	FileInputStream fis=new FileInputStream("d:\\test111\\a.txt");
	//创建文件输出流对象
	FileOutputStream fos=new FileOutputStream("d:\\test111\\b.txt");//不加true表示覆盖写,加true表示追加写
	int i;
	//定义读取的字节数组 块读写 表示每次读1024个字节
	byte [] b=new byte[1024];
	while ((i=fis.read(b))!=-1){
		//表示读到的字节数量
		System.out.println(i);
		//写到fos对象文件
		fos.write(b);
	}
	//关闭输入流
	fis.close();
	//关闭输出流
	fos.close();
}

BuffereInputStream和BuffereOutputStream

public static void main(String[] args) throws IOException {
	    	//创建缓冲输入流对象
		BufferedInputStream bis = new BufferedInputStream(new FileInputStream("d:\\test111\\a.txt"));
		//创建缓冲输出流对象
		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("d:\\test111\\b.txt"));//不加true表示覆盖写,加true表示追加写

		int i;
		//定义读取的字节数组 块读写 表示每次读1024个字节
		byte [] b=new byte[1024];
		while ((i=bis.read(b))!=-1){
			//表示读到的字节数量
			System.out.println(i);
			//写到bos对象文件
			bos.write(b);
		}
		//关闭输入流
		bos.close();
		//关闭输出流
		bos.close();
	}

InputStreamReader和OutputStreamWriter

public static void main(String[] args) throws IOException {
	    	//创建字符输入流对象
		InputStreamReader isr = new InputStreamReader( new BufferedInputStream(new FileInputStream("d:\\test111\\a.txt")));
		//创建字符输出流对象
		OutputStreamWriter osw = new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream("d:\\test111\\b.txt")));//不加true表示覆盖写,加true表示追加写

		int i;
		//定义读取的字符数组 块读写 表示每次读1024个字符
		char[] c = new char[1024];
		while ((i=isr.read(c))!=-1){
			//表示读到的字节数量
			System.out.println(i);
			//写到fos对象文件
			osw.write(c);
		}
		//关闭输入流
		isr.close();
		//关闭输出流
		osw.close();
	}

FileReader和FileWriter


```java
public static void main(String[] args) throws IOException {
	    	//创建字符输入流对象
		//InputStreamReader isr = new InputStreamReader( new BufferedInputStream(new FileInputStream("d:\\test111\\a.txt")));
		//创建字符输出流对象
		//OutputStreamWriter osw = new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream("d:\\test111\\b.txt")));//不加true表示覆盖写,加true表示追加写

		FileReader fr = new FileReader("d:\\test111\\a.txt");
		FileWriter fw = new FileWriter("d:\\test111\\b.txt");
		int i;
		//定义读取的字符数组 块读写 表示每次读1024个字符
		char[] c = new char[1024];
		while ((i=fr.read(c))!=-1){
			//写到fw对象文件
			fw.write(c);
		}
		//关闭输入流
		fr.close();
		//关闭输出流
		fw.close();
	}

# BufferedReader和BufferedWriter

```java
public static void main(String[] args) throws IOException {
			BufferedReader br = new BufferedReader(new FileReader("d:\\test111\\a.txt"));
			BufferedWriter bw = new BufferedWriter( new FileWriter("d:\\test111\\b.txt"));
			int i;
			//定义读取的字符数组 块读写 表示每次读1024个字符
			char[] c = new char[1024];
			while ((i=br.read(c))!=-1){
				//写到fw对象文件
				bw.write(c);
			}
			//关闭输入流
			br.close();
			//关闭输出流
			bw.close();
	}

读取一行

BufferedReader br = new BufferedReader(new FileReader("d:\\test111\\a.txt"));
		BufferedWriter bw = new BufferedWriter( new FileWriter("d:\\test111\\b.txt"));
		String readline;
		while((readline = br.readLine()) != null){
			bw.write(readline);
			System.out.println(readline);
			bw.newLine();
		}
		bw.close();
		br.close();

ObjectInputStream和ObjectOutputStream

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("d:\\test111\\a.txt"));
		oos.writeObject(new Person("测试",18));
		ObjectInputStream ois = new ObjectInputStream(new FileInputStream("d:\\test111\\a.txt"));
		Person per = (Person) ois.readObject();
		System.out.println(per);
		oos.close();
		ois.close();

ByteArrayInoutStream和ByteArrayOutputStream

ByteArrayInputStream bais=new ByteArrayInputStream("测试".getBytes());
		byte[] b = new byte[1024];
		int len;
		while((len = bais.read(b)) != -1){
			System.out.println(new String(b, 0, len));
		}

		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		baos.write("测试".getBytes());
		//输出方式一
		byte[] byte1 = baos.toByteArray();
		System.out.println(new String(byte1));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值