18 java IO
来源:互联网 发布:网络教育怎么样 编辑:程序博客网 时间:2024/06/07 13:45
18 java IO
18.2.1 InputStream类型
每一种数据源都有相应的InputStream子类。另外,FilterInputStream也属于一种InputStream,为“装饰器”(decorator)类提供基类,其中,装饰器类可以把属性或有用接口与输入流连接在一起。
18.2.2 OutputStream类型
FilterOutSteam为“装饰器”类提供一个基类。
18.4 Reader和Writer
有时候我们需要把来自于“字节”层次结构中的类和“字符”层次结构中的类结合起来使用。为了实现这个目的,需要用到适配器类:InputStreamReader可以把InputStream转换为Reader,OutputStreamWriter可以把OutputStream转换为Writer。
18.8 标准IO
18.8.1 从标准输入中读取
java提供了System.in,System.err,和System.out。
其中System.out已经被事先包装成了printStream对象。System.err同样是PrintStream,但System.in却是一个没有被加工包装的InputStream。这意味着我们可以立即使用System.out和System.err但是在读取System.in之前必须对其进行包装。
通常我们会用readLine()一次一行读取输入,为此,我们将System.in包装成BufferedReader来使用。这要求我们必须用InputStreamReader把Syste.in转换成Reader。
BufferedReader stdin = new BufferedReader(new InputStreamReader (System.in);String s;while(s=stdin.readLine()!=null && s.length!=0){ System.out.println(s);}
readLine()会抛出IOException。
18.8.2 将System.out转换成PrintWriter
System.out是一个PrintStream,而PrintStream是一个OutputStream。PirntWriter有一个可以接受OutputStream作为参数的构造器,因此,只要你需要,就可以把System.out转换成PrintWriter。
PrintWriter out = new PrintWriter(System.out,true);out.println("hello,world");
将第二个参数设成true,以便开启自动清空功能,否则,你可能看不到输出。
18.8.3 标准IO重定向
java的System类提供了一些简单的静态方法调用,以允许我们对标准输入,输出和错误IO流进行重定向。
setIn(InputStream)setOut(PrintStream)setErr(PrintStream)
18.10 新IO
旧IO类库中有三个类被修改了,用以产生FileChannel。这三个被修改的类是FileInputStream,FileOutputStream和RandomAccessFile。
18.14 Preferences
Preferences API与对象序列化相比,前者与对象持久性更密切,因为它可以自动存储和读取信息。不过,它只能用于小的,受限的数据集合–我们只能存储基本类型和字符串,并且每个字符串的存储长度不能超过8k。
public class PreferencesDemo{ Preferences prefs = Preferences.userNodeForPackage(PreferencesDemo.class); prefs.put("Localtion","OZ"); prefs.putInt("Companions",4); Prefs.putBoolean("Are there witches",true); int usageCount = prefs.getInt("UsageCount",0); usageCount++; prefs.putInt("UsageCount",usageCount); for(String key:prefs.get(key,null){ print(key + ":" + prefs.get(key,null); } print(prefs.getInt("Companions",0));}
当我们第一次运行程序时,UsageCount的值是0,但在随后引用中,它将会是非零值。
- java基础18-io
- 18 java IO
- java基础18io流
- 【Java-IO】IO入门
- Java IO:IO框架
- 【IO】java IO 总结
- java IO
- IO.java
- JAVA IO
- JAVA IO
- java IO
- java io
- JAVA IO
- java IO
- java IO
- java io
- java io
- java io
- hibernate中实体类对象状态
- C++指针作为函数参数的问题
- 我的学习之路_第二章java入门_接口/多态
- PHP之浅谈RGB
- 同域名下Linux系统配置多个Tomcat
- 18 java IO
- Ajax--带进度条的文件上传
- Servlet的API(生命周期)
- 19 枚举类型
- 使用SeleniumWebDriver开始自动化-简单示例
- LeetCode#136. Single Number
- 发布 Victor 串口控件 1.5.0.6 VCL/FMX for C++ Builder 5 ~ 10.2 Tokyo 全系列版本
- *** 喵哈哈村的几何大师╰☆莣メ誋こ月
- SpringMVC下删除一条数据后重新加载当前页面(已实现分页功能)