读书人

java惯用类解析二:IO系统输入输出类

发布时间: 2012-10-09 10:21:45 作者: rapoo

java常用类解析二:IO系统输入输出类

??? InputStream的作用是用来表示那些从不同数据源产生输入的类。OutputStream决定了输出所要去往的目标

???????数据源???????????????????????????? 对应的类(都继承自InputStream)

(1)字节组????????????????????????ByteArrayInputStream?[ByteArrayOutputStream]

(2)String对象???????????????????StringBufferInputStream(已弃用)

(3)文件?????????????????????????? FileInputStream? [FileOutputStream]

(4)“管道”???????????????????? PipedInputStream? [PipedOutputStream]

(5)由其它种类的流组成的序列????SequenceInputStream

(6)其他数据源,如Internet

java惯用类解析二:IO系统输入输出类

示例:

import java.io.ByteArrayInputStream;  import java.io.ByteArrayOutputStream;  import java.util.Arrays;  /*  * ByteArrayInputStream(ByteArrayOutputStream)表示从字节数组产生输入(输出)  * 这个类其实就是对一个字节数组进行操作,把这个字节数组看成一个缓冲区  * 关闭方法是一个空方法,关闭后不影响其他方法  * 可以将数组定位到指定位置开始读/写,可以将数组从头开始读/写,可以查看数组还有几个字节可用  * 可以在某个位置做标记,可以返回到标记位置进行读/写  */  public class ByteArrayInputStreamDemo {      public static void main(String[] args) {          // 输入流缓冲区(假设已经有若干字节)           byte[] inputBuff = new byte[] { 1, 2, 3, 'a', 'b', 'c', 'd', 'e', 'f' };          byte[] result = new byte[20];          ByteArrayInputStream inputStream = new ByteArrayInputStream(inputBuff);          // 将缓冲区的字节读入result数组并输出result           inputStream.read(result, 0, 20);          System.out.println(Arrays.toString(result));          // 将result数组写入输出流           ByteArrayOutputStream outStream = new ByteArrayOutputStream();          outStream.write(result, 0, 20);          System.out.println(Arrays.toString(outStream.toByteArray()));      }    }  

?

import java.io.File;  import java.io.FileInputStream;  import java.io.FileNotFoundException;  import java.io.FileOutputStream;  import java.io.IOException;    /*  * FileInputStream从文件中产生输入流,FileOutputStream  * 把输出流输出到文件。读/写、打开和关闭都是调用本地方法  */  public class FileInputStreamDemo {      public static void main(String[] args) throws IOException {          FileInputStream inputStream = null;          try {              inputStream = new FileInputStream(new File("file/bb.dat"));          } catch (FileNotFoundException e) {              e.printStackTrace();          }          // 读到一个字节数组           byte[] result = new byte[500];          // int b;           // while ((b = inputStream.read()) != -1)//读一个字节           // System.out.print((char) b);           inputStream.read(result);          // System.out.println(Arrays.toString(result));           inputStream.close();          FileOutputStream outputStream = null;          // true表示以追加的形式打开           outputStream = new FileOutputStream("file/bb.dat", true);          // 写入           outputStream.write((int) 'A');          outputStream.write(result);          outputStream.close();      }  }  

?

?

读书人网 >编程

热点推荐