码迷,mamicode.com
首页 > 编程语言 > 详细

Java核心技术 卷二(一)

时间:2017-09-04 18:18:16      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:连接   系统   ace   void   路径名   写法   sep   int   需要   

书:《Java核心技术 卷二 高级特性 9》

时间:2017.9.4 17:13

1.流

  输入流:可以从其中读取一个字节序列的对象;抽象类(InputStream)

  输出流:可以向其中写入一个字节序列的对象;抽象类(OutputStream)

    流的来源:文件、网络连接、内存块。

  面向字节,所以不方便处理Unicode信息(每个字符使用了多个字节)

    -->Reader & Writer   extends  流(实现两个字节字符)

  InputStream方法:

    abstract int read():读入一个字节,并返回读入的字节,结束时返回-1.子类需要覆写此方法。

    abstract int write(int b):向某个位置写出一个字节。

      note:这两个方法在执行时会阻塞线程,直到读入或写出完成。

    available:检查当前可读入的字节数量

    flush:将缓冲区的流输出。

  读写完成后必须调用close方法关闭流,否则若流过多,将耗尽操作系统资源。

  FIleInputStream & FileOutputStream可以提供附着在一个磁盘文件上的输入流和输出流。参数为文件名或完整路径名。

    使用System.getProperty("user.dir")获取当前路径

System.out.println(System.getProperty("user.dir")); --> D:\WorkSpace\Eclipse\IOTest

    完整路径时我们需要获取操作系统的操作符,比如windows下:

System.out.println(File.separator); --> /    

    也可以使用双反斜杠的写法:C:\\windows\\123.txt

一个基本的读文件程序:

import java.io.FileInputStream;

public class IOTest {

    public static void main(String[] args) {
        try {
            FileInputStream fileInputStream = new FileInputStream("D:\\WorkSpace\\Eclipse\\IOTest\\123.txt");
            int i = fileInputStream.available();
            for(int j=0;j<i;j++) {
                System.out.printf("%c",fileInputStream.read());
            }
            fileInputStream.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

 

Java核心技术 卷二(一)

标签:连接   系统   ace   void   路径名   写法   sep   int   需要   

原文地址:http://www.cnblogs.com/liter7/p/7474832.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!