IO总结(二)

字节流

 

FileInputStream和FileOutputStream分别继承自InputStream和OutputStream用于向文件中输入和输出字节。

FileInputStream和FileOutputStream的常用构造方法:

FileInputStream(String name) throws FileNotFoundException

FileInputStream(File file)

FileOutputStream(String name)

FileOutputStream(File file)

FileOutputStream(File file,boolean append)

1)FileInputStream和FileOutputStream类支持其父类InputStream和OutputStream所提供的数据读写方法。

2)注意:

  在实例化FileInputStream和FileOutputStream流时要用try-catch语句以处理其可能抛出的FileNotFoundException。

  在读写数据时也要try-catch语句以处理可能抛出的IOException。

  FileNotFoundException是IOException的子类。

 例子1:(测试FileInputStream)

import java.io.*;
public class TestFileInputStream {
	public static void main(String[] args){
		int b = 0;
		FileInputStream in = null;
		try {
			in = new FileInputStream("E:\\Workspaces\\MyEclipse 8.5\\test\\src\\TestFileInputStream.java");
		} catch (FileNotFoundException e) {
			System.out.println("找不到指定文件!");
			System.exit(-1);
		}
		
		try {
			long num = 0;
			while((b = in.read()) != -1){
				System.out.print((char)b);
				num++;
			}
			in.close();
			System.out.print("");
			System.out.println("共读取了"+num+"个字节");
		} catch (IOException e) {
			System.out.println("文件读取错误!");
			System.exit(-1);
		}
	}
}


输出结果:

import java.io.*;
public class TestFileInputStream {
	public static void main(String[] args){
		int b = 0;
		FileInputStream in = null;
		try {
			in = new FileInputStream("E:\\Workspaces\\MyEclipse 8.5\\test\\src\\TestFileInputStream.java");
		} catch (FileNotFoundException e) {
			System.out.println("?????????¨??????");
			System.exit(-1);
		}
		
		try {
			long num = 0;
			while((b = in.read()) != -1){
				System.out.print((char)b);
				num++;
			}
			in.close();
			System.out.print("");
			System.out.println("????????"+num+"??×???");
		} catch (IOException e) {
			System.out.println("?????????í?ó??");
			System.exit(-1);
		}
	}
}
共读取了669个字节


例子2:(文件复制)

import java.io.*;
public class TestOutputStream {
	public static void main(String[] args){
	int b = 0;
	FileInputStream in = null;
	FileOutputStream out = null;
	try{
		in = new FileInputStream("E:\\Workspaces\\MyEclipse 8.5\\test\\src\\TestOutputStream.java");
		out = new FileOutputStream("D:\\a.java");
		while((b = in.read()) != -1){
			out.write(b);
		}
		in.close();
		out.close();
		
	}catch(FileNotFoundException e){
		e.printStackTrace();
	}catch(IOException e){
		e.printStackTrace();
	}
	System.out.println("文件已复制!");
  }
}


输出结果:

文件已复制!

例子3:(测试Reader)

import java.io.*;
public class TestReader {
	public static void main(String[] args){
		FileReader fr = null;
		int c = 0;
		try{
			fr = new FileReader("E:\\Workspaces\\MyEclipse 8.5\\test\\src\\TestReader.java");
			int ln = 0;
			while((c = fr.read()) != -1){
				System.out.print((char)c);
				ln ++ ;
			}
			fr.close();
		}catch(FileNotFoundException e){
			System.out.println("文件找不到!");
			System.exit(-1);
		}catch(IOException e){
			System.out.println("文件读写错误!");
			System.exit(-1);
		}
	}
}


输出结果:

import java.io.*;
public class TestReader {
	public static void main(String[] args){
		FileReader fr = null;
		int c = 0;
		try{
			fr = new FileReader("E:\\Workspaces\\MyEclipse 8.5\\test\\src\\TestReader.java");
			int ln = 0;
			while((c = fr.read()) != -1){
				System.out.print((char)c);
				ln ++ ;
			}
			fr.close();
		}catch(FileNotFoundException e){
			System.out.println("文件找不到!");
			System.exit(-1);
		}catch(IOException e){
			System.out.println("文件读写错误!");
			System.exit(-1);
		}
	}
}

 

例子4:(测试Writer)

import java.io.*;
public class TestWriter {
	public static void main(String[] args){
	FileWriter fw = null;
	try{
		fw = new FileWriter("D:\\b.dat");
		for(int c = 0; c < 50000; c++){
			fw.write(c);
		}
		fw.close();
	}catch(IOException e){
		e.printStackTrace();
		System.out.println("文件写入错误!");
		System.exit(-1);
		
	}
  }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值