异常的分类与处理与I/O流
1,处理异常有两种方法,
try {
}catch(){}finally{ } 直接throws抛出异常。
2,两者的区别,前者会输出发生异常后的语句,后者不会
3,字符流仅用于纯文本文件
字节流可以处理非纯文本文件也可以处理纯文本文件
字符流抽象类Read和Writer
抽象类不可以直接使用所以我们使用他们的子类FileReader和FileWriter(一个字符一个字符读取写入)
BufferedReader和BufferedWriter(多个字符高效的读取和写入)
字节流抽象类InputStream和OutputStream
子类是FileInputStream和FileOutputStream
字节数组:byte bytes[] =new byte[(int)file.length()];
代码:以字节数组的形式输入数据
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
//读取磁盘中的TXT文件
public class Read {
/**
* @param args
*/
public static void main(String[] args) throws FileNotFoundException, IOException {
// TODO Auto-generated method stub
File file =new File("D://read.txt");
InputStream io;
BufferedInputStream bis;
io=new FileInputStream(file);
bis=new BufferedInputStream(io);
byte bytes[] =new byte[(int)file.length()];
int temp=0;
int i=0;
while((temp=bis.read())!=-1){
bytes[i]=(byte)temp;
i++;
}
String str=new String(bytes,"utf-8");
System.out.println("内容:"+str);
}
}
缓冲字节流BufferedInputStream,BufferedOutputStream
4,缓冲流拷贝文件:
代码:
package IO_Steram_read;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//数据缓冲流拷贝文件
public class BufferCopy {
public static void main(String [] args) throws IOException{
//新建缓冲数据流输入流对象
BufferedReader read=new BufferedReader(new FileReader("D://read.txt"));
//新建数据输出流对象,关联目的文件
BufferedWriter writer=new BufferedWriter(new FileWriter("D://reader.txt"));
//新建变量存储数据
String str;
while((str=read.readLine())!=null){
//writer.newLine();
writer.write(str);
writer.write("\r\n");
}
read.close();
writer.close();
}
}
5,注意事项:
一定不要忘记释放资源否则不会显示内容
关于中文乱码解决问题,可以在保存TXT文档时选择utf-8编码。
遇到不会的类或者方法需要查询API文档,ctrl+鼠标左键查看函数或者