IO流
节点流和处理流:
节点流类型
案例:
package cn.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import org.junit.Test;
public class Demo4 {
@Test
//测试字节输入流
public void FileInputStreamTest() throws Exception{
//创建字节输入流
FileInputStream fs = new FileInputStream("./src/cn/test/Demo4.java");
//创建一个1024的数节字组,每次从流中最多截取1024字节
byte[] bytes = new byte[1024];
//用于保存实际读取的字节数
int hasRead = 0;
//使用循环重复的读取流中的字节,直到hasRead=-1
while ((hasRead = fs.read(bytes)) > 0){
System.out.println(new String(bytes,0,hasRead));
}
fs.close();
}
@Test
//测试字符输入流
public void FileReaderTest() throws IOException{
//创建字符流
try {
FileReader fr = new FileReader("./src/cn/test/Demo4.java");
//设置每次从文件中读取的文件字符数
char[] cbuf = new char[256];
//用于保存实际读取得字符数
int hasRead = 0;
while ((hasRead=fr.read(cbuf))>0){
//将字符串数组转换成字符串输入
System.out.println(new String(cbuf,0,hasRead));
}
fr.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
@Test
//测试字节输出流,读取A文件的流到B文件中
public void fileOutputStreamTest() throws IOException{
try {
//创建字节输入流
FileInputStream fis = new FileInputStream("./src/cn/test/Demo4.java");
//创建字节输出流,将Demo4.java的内容写到newfile.txt中
FileOutputStream fos = new FileOutputStream("D:/temp/newfile.txt");
//创建取字节流的容器字节数组
byte[] bytes = new byte[1024];
//用于保存实际读取的字节数
int hasRead = 0;
//循环从输入流中读取数据
while ((hasRead = fis.read(bytes))>0){
//没读取一次就写入输出流中
fos.write(bytes, 0, hasRead);
}
fis.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
@Test
//测试字符输出流
public void fileWriterTest(){
try {
FileWriter fw = new FileWriter("D://temp//test.txt");
//在test.txt中写入内容
fw.write("hello world!!!\r\n");
fw.append("China");
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
//测试PrintStream字节输出处理流
public void printStreamTest(){
try {
//创建一个输出流
FileOutputStream fos = new FileOutputStream("D:/temp/test.txt");
PrintStream ps = new PrintStream(fos);
//使用PrintStream执行输出,将"普通字符串"写入到test.txt中
ps.println("普通字符串");
ps.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
@Test
//测试转换流和缓冲流
public void inputStreamReaderTest() throws IOException{
try {
//创建字节输入流
FileInputStream fis = new FileInputStream("D:/temp/test.txt");
//将字节输入流转换成字符输入流
InputStreamReader reader = new InputStreamReader(fis);
//将普通的Reader包装成BufferedReader
BufferedReader br = new BufferedReader(reader);
String line = null;
//采取循环逐行读取
while ((line = br.readLine()) != null){
if (line.equals("exit")){
System.exit(1);
}
System.out.println(line);
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}

浙公网安备 33010602011771号