InputStream和OutputStream进行读、写、删除文件

本文探讨了在Java中如何使用InputStream和OutputStream进行文件的读取、写入和删除操作。通过实例展示了字节流在文件读写中的应用,并提到了一个递归删除文件夹中文件的方法。

JAVA中我们经常会从一个文件中读取数据或者写数据或者删除删除数据


下面来看一下串流的继承架构:


图片参考:http://blog.youkuaiyun.com/wh4656438/article/details/51727795


今天这片文章主要举几个字节流的文件读写


1,读取文件中的字符,每次读取一个字符


package a001;

import java.io.FileInputStream;
import java.io.IOException;

public class FileinputDemo {

	public static void main(String[] args) throws IOException {
		// 创建输入字节流对象
		FileInputStream fs1=new FileInputStream("h:\\d.txt");
		int by=0;
		//此处的char,只能读取char类型的 不能读取中文 ,因为这里一次读取一个字符,汉字不止一个字符
		//如果文件中包含汉字,则会乱码
		while((by=fs1.read())!=-1){
			System.out.print((char)by);
		}
		fs1.close();
	}

}


2,将数据写入文件

package a001;

import java.io.FileOutputStream;
import java.io.IOException;

/*
 * 实现数据的换行
 * 追加添加数据
 * 
 * */
public class FileOutputDemo3 {

	public static void main(String[] args)throws IOException {
		
//		FileOutputStream fos4=new FileOutputStream("h:\\d.txt");//这个每次都是重新写入内容
		FileOutputStream fos4=new FileOutputStream("h:\\d.txt",true);//追加写入
		
		for(int x=0;x<10;x++){
			fos4.write(("hello"+x).getBytes());
			fos4.write("\r\n".getBytes());
		}
		//释放资源
		fos4.close();
	}

}

3,查找文件中的以.jpg结尾的名字的文件(搜索照片)


package a001;

import java.io.File;

/*
 *查找文件夹中的.jpg文件 
 * 
 */
public class jpgPathDemo {

	public static void main(String[] args) {
		
		File srcFolder=new File("h:\\photo1");
		photoPathDemo(srcFolder);

	}

	private static void photoPathDemo(File srcFolder) {
		//返回当前文件夹中的所有文件
		File[] fileArray=srcFolder.listFiles();
		//遍历文件,并判断是否为文件夹,如果为文件夹则递归判断子文件夹中的文件
		//如果不为文件夹,则查找以.JPG结尾的文件,并输出
		for(File file:fileArray){
			if(file.isDirectory()){
				photoPathDemo(file);
			}else{
				if(file.getName().endsWith(".JPG")){
					System.out.println(file.getAbsolutePath());
				}
			}
		}
		
	}

}




4,用递归的方法删除文件夹中的文件


package a001;

import java.io.File;

public class deleteDemo {

	public static void main(String[] args) {
		//封装文件夹
		File srcFolder =new File("h:\\movie");
		deleteFiles(srcFolder);

	}

	private static void deleteFiles(File srcFolder) {
		// TODO Auto-generated method stub
		File[] fileArray=srcFolder.listFiles();
		//遍历删除文件夹中的文件 
		for(File file:fileArray){
			if(file.isDirectory()){
				deleteFiles(file);
			}else{
				System.out.println(file.getName()+"----"+file.delete());
			}
		}
		//删除根目录
	System.out.println(srcFolder.getName()+"---"+srcFolder.delete());
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值