package ray;
import java.io.FileReader;
import java.io.IOException;
import org.junit.Test;
/*
*IO流用来处理设备之间的数据传输。
*Java程序中,对于数据的输入/输出操作以”流stream"的方式进行。指从源节点到目标结点的数据流动。
*可以是文件、网络、内存、键盘、显示器等等。
*java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。
*按单位分为: 字节流8bit, 字符流16bit
*输入流 InputStream(基类) Reader(基类)
*输出流 OutputStream(基类) Writer(基类)
*读写文件的步骤:
*1)使用正确的流打开文件(建立一个通道),
*如果是读文本文件FileReader,读二进制文件用FileInputStream
*写文本文件用FileWriter,写二进制文件使用FileOutputStream
*
*2)通过调用流对象的相关方法完成数据的读取或写入
- 读数据调用read,写调用write
*3)关闭流通道
*/
public class IOTest{
@Test
public void test2() {
//打开流
FileReader fileReader = null;
try {
fileReader = new FileReader("一个文本文件");
//处理数据
int ch = fileReader.read();
while(ch != -1) {
System.out.print((char)ch);
ch = fileReader.read();//当前目录下,项目目录
}
}catch (IOException e) {
e.printStackTrace();
}finally {
//关闭流
if(fileReader != null) {
try {
fileReader.close();
} catch (IOException e) {//这个异常不处理 文件已经关了
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
@Test
public void test1() throws IOException {
//打开流
FileReader fileReader = new FileReader("一个文本文件");
//处理数据
int ch = fileReader.read();
while(ch != -1) {
System.out.print((char)ch);
ch = fileReader.read();//当前目录下,项目目录
}
//关闭流
fileReader.close();
}
}