练习
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();
}
}
}
}