首页 > 编程 > Java > 正文

关于java 中的IO流的简单用法

2019-11-11 00:43:15
字体:
来源:转载
供稿:网友
1.这个类用于简单的io流,可以用来复制拷贝文件
public class copyFile {我们可以先简单的将这个方法封装
	public static void copy(){	
		try {在新建一个输入,一个输出的io流的过程中,会遇到报错,这时候我们需要将可能产生异常的代码块包起来这时候我们获取到了is的输入流,以及os的输出流
			FileInputStream is=new FileInputStream("a.txt");			FileOutputStream os=new FileOutputStream("c.txt"); 我们要将is里的数据读入到os里面去,

这时还会有异常抛出,我们还要将其包起来

			int a;

定义一个int a,将is读取的数据赋值给a,有了输入流之后,我们就要从输入流中获取数据,如何获取呢,FileInputStream已经有方法.read(),就是读取(这个方法读取的是int类型的数据)
			while((a=is.read())!=-1){					os.write((char)a);			}
			is.close();os.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.PRintStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

2.io流,可以用来复制拷贝图片

和上述1的方法几乎没有区别,唯一有一点区别的是,在is输入流读取数据时,效率变得更高了,使用byte数组来读取,避免一次读一个的低效率,

	public static void copy1() {		try {			FileInputStream is=new FileInputStream("1111.jpg");			FileOutputStream os=new FileOutputStream("222.jpg");			byte a[]=new byte[1000];//使用byte数组一次性读1000个数据进去			int b;			while((b=is.read(a))!=-1){			os.write(a);			}			is.close();//关闭输入流			os.close();//关闭输出流		} catch (FileNotFoundException e) {			// TODO Auto-generated catch block			e.printStackTrace();		} catch (IOException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}			}3.上述两个方法都还可以在速度上进行进一步的改进, 在复制一个视频文件时候,再用上述的方法就会显得比较慢,这时我们就可以采用改进的措施了。

我们可以在is输入流中采取快速读取数据的数组,还可以在os输出流中快速写入数据的数组

先新建一个数组,尽量大一点,我在这里用1000,例如,这个文件有10000字节,我们用数组只需要十次就可以读完

先新建一个数组,尽量大一点,我在这里用1000,例如,这个文件有10000字节,我们用数组只需要十次就可以写完

	public static void copyQuick() {		try {			FileInputStream fis=new FileInputStream("录像1.wmv");			FileOutputStream fos=new FileOutputStream("hhh.wmv");			byte bi[]=new byte[1000];			int a;			while((a=fis.read(bi))!=-1){				byte mi[]=new byte[a];//这里新建一个数组是为了防止读取数据中会有冗余的数据				for(int m=0;m<a;m++){//把原来读入的数组的数据传入到这个新的数组中去					mi[m]=bi[m];				}				fos.write(mi);//然后再将新的数组的数据写入到输出流中			}			fis.close();			fos.flush();			fos.close();		} catch (FileNotFoundException e) {			// TODO Auto-generated catch block			e.printStackTrace();		} catch (IOException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}

//	为了输入数据更加方便,我们要引入PrintWriter	public static void test11() {		try {			PrintWriter pw=new PrintWriter("e.txt");			pw.print("vbfshvjfdlshgifugaishrefgajdloju");			pw.flush();			pw.close();		} catch (FileNotFoundException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}//	读文件的时候更简单一点	public static void test1() {		try {			Scanner sc=new Scanner(new FileInputStream("e.txt"));			while(sc.hasNextLine()){				System.out.println(sc.nextLine());							}			sc.close();		} catch (FileNotFoundException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}			}
上一篇:java下次学习内容

下一篇:Java 日期时间

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表