第八章 I/O

练习


import java.io.*;

public class IO {

	public static void main(String[] args) {
		FileInputStream in = null;
		FileOutputStream out = null;
		byte bit[] = new byte[1024];
		File file = new File("D:/Files/homework/我的青春谁做主.txt");
		try {
			file.createNewFile();
		} catch (IOException e1) {

			e1.printStackTrace();
		}
		try {
			in = new FileInputStream("D:/Files/homework/我的青春谁做主.txt");
			out = new FileOutputStream("D:/Files/homework/myPrime.txt", true);
			while ((in.read()) != -1) {
				in.read(bit);
				out.write(bit, 0, bit.length);
			}
		} catch (Exception e) {

			e.printStackTrace();
		} finally {
			try {
				if (in != null) {
					in.close();
				}
				if (out != null) {
					out.close();

				}
			} catch (Exception e2) {
				// TODO: handle exception
			}
		}
	}
}

简答题

1、简述Java中流的分类

  • Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示:InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的。
    2、文本文件的读写过程中需要处理的异常有哪些?

  • IOException 当发生某种 I/O 异常时,抛出此异常。

  • FileNotFoundException 当试图打开指定路径名表示的文件失败时,抛出此异常。

  • InterruptedIOException I/O 操作已中断信号,抛出此异常。

  • NotActiveException 当序列化和反序列化不活动时,抛出此异常。

  • UTFDataFormatException 在数据输入流中或由实现该数据输入接口的任何类中以 UTF-8 修改版格式读取错误字符串时,抛出此异常。

  • ObjectStreamException 特定于 Object Stream 类的所有异常的超类。

3使用BuffReader 和 BufferedWriter复制文件 查看文件内容和文件大小是否一致

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

public class BufferedCopyFile {

	public static void main(String[] args) {
		FileReader fr;
		FileWriter fw;
		BufferedReader br = null;
		BufferedWriter bw = null;
		String str;

		try {
			fr = new FileReader("D:\\Files\\homework\\myPrime.txt");
			fw = new FileWriter("D:\\Files\\homework\\我的青春谁做主.txt");
			br = new BufferedReader(fr);
			bw = new BufferedWriter(fw);

			while ((str = br.readLine()) != null) {
				bw.write(str);
				bw.newLine();
			}
		} catch (Exception e) {

		} finally {
			try {
				bw.flush();
				br.close();
				bw.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			System.out.println("done!");
		}
	}
}

4.编写一个Java程序读取Windows目录下的win.ini文件并输出内容

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class readToString {
	public static void main(String[] args) {
		  FileInputStream fis = null;
	      DataInputStream dis = null;
		  try {
			  //创建输出流对象
		      fis = new FileInputStream("C:\\Windows\\win.ini");
		      dis = new DataInputStream(fis);
		      //创建输入流对象
		      int temp;
		      //读取文件并写入文件0
		      while ( (temp = dis.read()) != -1) {
		        System.out.print((char)temp);
		        
		      }
		    }catch (FileNotFoundException e) {
		    	System.out.println("无此文件");
		    }catch (IOException ioe) {
		      ioe.printStackTrace();
		    }finally{
		    	try {
		    		if(fis!=null)
		    			fis.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
		    }
		}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值