import java.io.*;import org.junit.Test; /* * FileInputStream和FileOutputStream的使用 */ public class FileInputOutputStreamTest { // 使用字节流FileInputStream处理文本文件,可能出现乱码 @Test public void testFileInputStream() { FileInputStream fis = null; try { // 1.实例化File类的对象,指明要操作的文件 File file = new File("hello.txt"); // 2.造流 fis = new FileInputStream(file); // 3.1读数据 // read():返回读入的一个字符。如果文件末尾,返回-1 // int data; // while ((data = fis.read()) != -1) { // // 转换为char类型的才能正常显示 // System.out.print((char)data); // } // 3.2读数据(因为是字节流这边造一个字节数组) byte[] buffer = new byte[5]; int len; // 记录每次读取的字节的个数 while ((len = fis.read(buffer)) != -1) { // 遍历数组一:用String构造器 String str = new String(buffer,0,len); System.out.print(str); // 遍历数组二: // for (int i = 0; i < len; i++) { // System.out.print((char)buffer[i]); // } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { if (fis != null) { // 4.关闭资源 try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } // 复制非文本文件 @Test public void testOutputStream() { FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream("飘窗.jpg"); fos = new FileOutputStream("飘窗1.jpg"); byte[] buffer = new byte[1024]; int len; while ((len = fis.read(buffer)) != -1) { fos.write(buffer, 0, len); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally {// 4.关闭资源 if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
标签:fis,java,IO,buffer,len,printStackTrace,读入,catch,new From: https://www.cnblogs.com/lxh-daniel/p/16714372.html