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