详细的Io流 用法

代码下面有总结

public static void main(String[] args) throws IOException {
		
		File f1=new File("D:\\bb\\cc.txt");
		
		System.out.println(f1.isFile());//判断是否是文件
		System.out.println(f1.isDirectory());//判断是否是文件夹
		
		System.out.println(f1.getName());//获取文件或目录的名字
		System.out.println(f1.getParent());//获取父级目录
		
		System.out.println(f1.exists());//判断此路径是否存在
		
		//System.out.println(f1.createNewFile());//创建文件
		
		
		File file=new File("D:\\bb\\cc\\dd");
		//System.out.println(file.mkdir());//创建文件夹只能创建一层
		System.out.println(file.mkdirs());//创建文件夹可以创建多层
		File f2=new File("src//houpu//aa.txt");
		System.out.println(f2.exists());
		System.out.println(f2.createNewFile());
		System.out.println("绝对路径:"+f2.getAbsolutePath());
	
		System.out.println("删除:"+f2.delete());//删除
	
		File f3=new File("D://aa", "bb//cc");
		System.out.println(f3.exists());
		System.out.println(f3.mkdirs());
	}
public static void main(String[] args) throws IOException {
		//m1();
		//m2();
		
		//通过字节流,实现文件或图片的复制,
		
	}
	//写入
	public static void m2() throws IOException{
		//1.创建文件
		File file=new File("src//houpu//aa.txt");
		
		//2.创建流与文件关联
		FileOutputStream fout=new FileOutputStream(file);
		
		String s="hello world";
		//将字符串转为数组
		byte[] b=s.getBytes();
		
		//3.写入
		fout.write(b);
		
		//4.关闭流,释放资源
		fout.close();
	}
	//读取
	public static void m1() throws IOException{
		//创建要读取的文件
		File file=new File("d:\\aa.txt");
		
		//创建流与文件关联
		FileInputStream fin=new FileInputStream(file);
		
		//创建传输通道
		byte[] b=new byte[1024];
		
		int len=0;
		//开始读取   先读取值,赋值给变量len,判断是!=-1
		while((len=fin.read(b))!=-1){
			//转换为字符串
			String str=new String(b,0,len);
			System.out.println(str);
		}
		//关闭流,释放资源
		fin.close();
	}
//将d盘中的a.gif图片复制到d:\\aa文件夹下
	public static void main(String[] args) {
		//创建文件
		File f1=new File("D:\\a.gif");//源文件
		File f2=new File("D:\\aa\\a.gif");//目的文件
		FileInputStream fin=null;
		FileOutputStream fout=null;
		try {
			//创建输入流与源文件关联
			fin=new FileInputStream(f1);
			//创建输出流与目的文件关联
			fout=new FileOutputStream(f2);
			
			//创建传输通道
			byte[] b=new byte[1024];
			
			//读写
			int len=0;
			while((len=fin.read(b))!=-1){
				//边读边写
				fout.write(b, 0, len);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			//关闭流,释放资源(先开后关)
			if(fout!=null){
				try {
					fout.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if(fin!=null){
				try {
					fin.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
	}
public static void main(String[] args) throws IOException {
		long start=System.currentTimeMillis();//获取当前的毫秒数
		
		File file1=new File("src//houpu//aa.txt");//源文件
		File file2=new File("C:\\Documents and Settings\\Administrator\\桌面\\案例\\aa.txt");//目的文件
		//1.创建流与文件关联
		FileReader fr=new FileReader(file1);
		FileWriter fw=new FileWriter(file2);
		
		//2.创建传输通道
		char[] c=new char[1024];
		int len=0;
		//3.选择读写方式
		while((len=fr.read(c))!=-1){
			//转为字符串
			String s=new String(c, 0, len);
			//写入
			fw.write(s);
			//刷新
			fw.flush();
		}
		//4.关闭流
		fw.close();
		fr.close();
		long end=System.currentTimeMillis();
		System.out.println(end-start);
	}
public static void main(String[] args) throws IOException {
		//创建文件
		File file1=new File("src//houpu//aa.txt");//源文件
		File file2=new File("aa.txt");//目的文件
		//创建流与文件关联
		FileReader fr=new FileReader(file1);//与源文件关联
		FileWriter fw=new FileWriter(file2);//与目的文件关联
		//创建缓冲流与流关联
		BufferedReader br=new BufferedReader(fr);
		BufferedWriter bw=new BufferedWriter(fw);
		
		String s=null;
		//选择读写方式
		while((s=br.readLine())!=null){
			//边读边写
			bw.write(s);
			bw.newLine();//换行符
			//刷新
			bw.flush();
		}
		//关闭流
		bw.close();
		br.close();
		
	}

总结:
I/O流
File类:
分类:
根据传输方向:
输入流 InputStream
输出流 OutputStream
根据传输类型:
字节流
字节输入流 FileInputStream
字节输出流 FileOutputStream
与文件关联
字符流
字符输入流 FileReader
字符输出流 FileWriter
与文件关联
缓冲流
缓冲输入流 BufferedReader
缓冲输出流 BufferedWriter
与流关联
步骤:
1.创建流与文件关联
2.创建传输通道
3.选择读写方式
4.关闭流,释放资源 (.close())
注意:除了字节输出流不用刷新,其余的输出流都需要刷新(.flush())
作业:
1.使用字节流实现图片的复制
2.使用缓冲流,复制 总结.txt 文件,并给每一行加上行号
3.将 总结.txt 文件中的内容分类
字母保存到 字母.txt 文件中
数字保存到 数字.txt 文件中
其他字符保存到 其他.txt 文件中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值