文件、流(1)

来源:互联网 发布:分子生物学软件应用 编辑:程序博客网 时间:2024/05/29 16:45
  1. 抽象类InputStream和OutputStream构成了输入/输出(I/O)类层次结构,主要处理字节流(单个字节或者是字节数组)。
  2. 抽象类Reader和Writer专门用于处理字符流。
  3. DataInputStream和DataOutputStream可以以二进制格式读写所有基本的java类型
  4. ZipInputStream和ZipOutputStream可以以常见的zip格式读写文件
  5. FileInputStream和FileOutputStream可以提供附着在一个磁盘文件上的输入流和输出流。
//从文件读入数据,首先必须创建一个FileInputStream,再讲其值传递给DataInputStream.        try {            FileInputStream fin = new FileInputStream("text.txt");            DataInputStream din = new DataInputStream(fin);            double  s = din.readDouble();        } catch (Exception e) {            e.printStackTrace();        }
  1. Read和write方法在执行时都将阻塞,直至字节确实被读入或者写入。换句话说,如果留不能被立即访问,那么当前的线程将会被阻塞。这使得在这两个方法等待指定的流变为可用的的这段时间里,其他的线程将会有机会去执行其他工作。当读写工作完成后
    应该调用close方法关闭它,这样就可以释放掉有限的系统资源。同时,还会冲刷用于该输出流的缓冲区:所有被临时置于缓冲区中,以便使用更大的包的形式传递的字符在
    关闭输出流时将被送出。特别是,如果不关闭文件,那么写出字节的最后一个包可能永远也得不到传递。
  2. 流在默认的情况下是不被缓冲区缓存的,也就是说每个对于read的调用都会请求操作系统再分配一个字节。所以,请求一个数据块并将其置于缓冲区会更加的高效。
    try {
    FileInputStream fin = new FileInputStream("text.txt");
    DataInputStream din = new DataInputStream(new BufferedInputStream(fin));
    double s = din.readDouble();
    } catch (Exception e) {
    e.printStackTrace();
    }

    1. 8.
0 0
原创粉丝点击