十、I/O流

目录

一、流概述

 二、File类

三、FileInputStream与FileOutputStream类

四、FileReader与FileWriter类

五、BufferedInputStream与BufferedOutputStream类

 六、BufferedReader与BufferedWriter类

 七、DataInputStream与DataOutputStream类


一、流概述

物质在目的地之间的转移称为流

 

 

 

 

 

 二、File类

 File是代表文件对象,不是真正的文件,只是能对这个文件操作

 

package 流;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

public class FILE {

	public static void main(String[] args) {
		File f1=new File("/JAVA学习/java从入门到基础/流/4郭博成.docx");
		File f2=new File("/JAVA学习/java从入门到基础/流/","4郭博成.docx");
		File f3=new File("\\JAVA学习\\java从入门到基础\\流\\4郭博成.docx");
		
		File f4=new File("C:\\Users\\xiaoguotongxue\\Desktop\\4郭博成.docx");//绝对路径
		
		System.out.println("文件名:"+f4.getName());
		System.out.println("文件是否存在:"+f4.exists());
		System.out.println("文件的绝对路径:"+f4.getAbsolutePath());
		System.out.println("是否为隐藏文件"+f4.isHidden());
		System.out.println("文件的字节数:"+f4.length());
		Date date=new Date(f4.lastModified());
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy:MM:dd HH:mm:ss");
		System.out.println("文件最后的修改时间:"+sdf.format(date));
		// TODO 自动生成的方法存根

	}

}

 

 

package 流;

import java.io.File;

public class FILEwenjianjia {

	public static void main(String[] args) {
		File dir1=new File("dir");
		boolean flag1=dir1.mkdir();//创建文件夹
		System.out.println("创建文件夹是否成功"+flag1);
		
		File dir2=new File("dir1/dir2/dir3/dir4/dir5");
		boolean flag2=dir2.mkdirs();//创建文件夹
		System.out.println("创建文件夹是否成功"+flag2);
		
//		boolean del=dir2.delete();//删除文件夹
//		System.out.println("删除文件夹是否成功"+del);
		// TODO 自动生成的方法存根
		
		File f=new File("C:\\Users\\xiaoguotongxue\\Desktop\\");
		File files[]=f.listFiles();//返回文件夹下所有子文件和文件夹
		for(File tmp:files) {
			if(tmp.isFile()) {
				System.out.println("文件:  "+tmp.getName());
			}
			if(tmp.isDirectory()) {
				System.out.println("文件夹: "+tmp.getName());
			}
		}

	}

}

 

三、FileInputStream与FileOutputStream类

package 流;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class zijieliu {

	public static void main(String[] args) {
		File f=new File("word.text");
		FileOutputStream out=null;
		try {
			out=new FileOutputStream(f,true);//文件输出流、true:添加、false:替换
			String str="12345";
			byte b[]=str.getBytes();//字符串转换为字节数组
			out.write(b);//将字节数组中的数据写入到文件中
		} catch (FileNotFoundException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}finally {
			if(out!=null) {
				try {
					out.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
		}
		FileInputStream in=null;
		try {
			in=new FileInputStream(f);
			byte b2[]=new byte [1024];//缓冲区
			//in.read(b2);
			int len=in.read(b2);//读入缓冲区的总字节数
			System.out.println("文件中的数据是:"+new String(b2,0,len));
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}finally {
			if(in!=null) {
				try {
					in.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
		}
		
		
		// TODO 自动生成的方法存根

	}

}

 

四、FileReader与FileWriter类

package 流;
  
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class zifulie {

	public static void main(String[] args) {
		File f=new File("word1.txt");
		FileWriter fw=null;
		try {
			fw=new FileWriter(f);//true:原文件后追加新内容
			 String str="自强不息,厚德载物";
			 fw.write(str);
			// TODO 自动生成的方法存根
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}finally {
			if(fw!=null) {
				try {
					fw.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
		}
		FileReader fr=null;
		try {
			fr=new FileReader(f);
			char ch[]=new char[1024];//缓冲区
			int count;//已读出的字符数
			while((count=fr.read(ch))!=-1) {//循环读取文件中的数据,直到都读完
				System.out.println("文件中的内容为"+new String(ch));
			}
			
		} catch (FileNotFoundException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}finally {
			if(fr!=null) {
				try {
					fr.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
		}

	}

}

五、BufferedInputStream与BufferedOutputStream类

package 流;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.Buffer;

public class BUFFERzijie {

	public static void main(String[] args) {
		File f=new File("C:\\\\Users\\\\xiaoguotongxue\\\\Desktop\\","4郭博成.docx");
		BufferedInputStream bi=null;//大大提高了运行效率
		FileInputStream in=null;
		long start=System.currentTimeMillis();//获取程序开始时的毫秒值
		try {
			in=new FileInputStream(f);
			bi=new BufferedInputStream(in);//将文件字节流包装成缓冲字节流
			byte b[]=new byte[1024];//缓冲区字节数组(与buffer不同)
			while((bi.read(b))!=-1) {//使用缓冲区读取数据
				
			}
			long end=System.currentTimeMillis();//获取结束时的毫秒值
			System.out.println("运行时进行的毫秒数"+(end-start));
		} catch (FileNotFoundException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}finally {
			if(in!=null) {
				try {
					in.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
			if(bi!=null) {
				try {
					bi.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
		}
		File f2=new File("word.txt");
		FileOutputStream out=null;
		BufferedOutputStream bo=null;
		try {
			out=new FileOutputStream(f2);
			bo=new BufferedOutputStream(out);//包装文件输出流
			String str="天生我材必有用,千金散尽还复来";
			byte b[]=str.getBytes();
			bo.write(b);//使用缓冲字节输出流时,要多进行刷新操作
			bo.flush();//刷新,强制将缓冲区数据写入文件,即使缓冲区
			
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}finally {
			if(out!=null) {
				try {
					out.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
		}
		// TODO 自动生成的方法存根

	}

}

 

 六、BufferedReader与BufferedWriter类

package 流;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class BUFFERzifu {

	public static void main(String[] args) {
		File f=new File("word3.txt");
		FileWriter fw=null;
		BufferedWriter bw=null;
		
		try {
			fw=new FileWriter(f);
			bw=new BufferedWriter(fw);
			String str1="世界这么大";
			String str2="我想去看看";
			bw.write(str1);//第一行的数据
			bw.newLine();//创建一个新行
			bw.write(str2);//第二行的数据
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}finally {//注意流关闭的顺序,先创建后关闭
			if(bw!=null) {
				try {
					bw.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
		}
					if(fw!=null) {
				try {
					fw.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
		
		FileReader fr=null;
		BufferedReader br=null;
		
		try {
			fr=new FileReader(f);
			br=new BufferedReader(fr);
			String tmp=null;
			int i=1;
			while((tmp=br.readLine())!=null) {
				System.out.println("第"+i+"行:"+tmp);
				i++;
			}
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}finally {
			if(br!=null) {
				try {
					br.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
			if(fr!=null) {
				try {
					fr.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
		}
		
			
		// TODO 自动生成的方法存根

	}

}

 

 七、DataInputStream与DataOutputStream类

package 流;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class DATA {

	public static void main(String[] args) {
		File f=new File("word4.txt");
		FileOutputStream out=null;
		DataOutputStream dos=null;
		try {
			out=new FileOutputStream(f);
			dos=new DataOutputStream(out);//将文件包装为数据流
			dos.writeUTF("这是写入字符串数据:");
			dos.writeInt(123);
			dos.writeBoolean(true);
			dos.writeDouble(3.14);
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}finally {
			if(dos!=null) {
				try {
					dos.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
			if(out!=null) {
				try {
					out.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
		}
		
		
		FileInputStream in=null;
		DataInputStream di=null;
		try {
			in=new FileInputStream(f);
			di=new DataInputStream(in);
			System.out.println("readUTF()读取数据:"+di.readUTF());//读取String类型的数据
			System.out.println("readDouble()读取数据:"+di.readDouble());//读取Double类型的数据
			System.out.println("readInt()读取数据:"+di.readInt());//读取Int类型的数据
			System.out.println("readBoolean()读取数据:"+di.readBoolean());//读取Boolean类型的数据
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}finally {
			if(di!=null) {
				try {
					di.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
			if(in!=null) {
				try {
					in.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}
		}
		// TODO 自动生成的方法存根

	}

}

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郭同学忒骚了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值