Snowdream
posts - 403, comments - 310, trackbacks - 0, articles - 7
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
2.23 Java notes - Simple Input and Output
Posted on 2007-04-22 20:24
ZelluX
阅读(536)
评论(0)
编辑
收藏
所属分类:
OOP
2007-02-23 14:53:10
先把教材的最后一章看了再说
1. File class
四个常量:pathSeparator, pathSeparatorChar, separator, separatorChar
与常量命名惯例冲突。
2. 几乎所有的I/O类的方法会抛出java.io.IOException,在使用时必须声明或使用try块。
3. 文本IO
两个基类Reader和Writer,下面分别有InputStreamReader BufferedReader FileReader PrintWriter等子类。
基类的方法Core Java中已经看了一部分了。
PrintWriter类并不会抛出IOException
4. FileReader / FileWriter
Reader及其子类访问一个并不存在的文件会抛出IOException的子类FileNotFoundException。
判断文件结尾:input.read() == -1
FileWriter的常用构造方法:
java.io.FileWriter(java.io.File)
java.io.FileWriter(java.lang.String)
java.io.FileWriter(java.io.File, boolean append)
java.io.FileWriter(java.lang.String, boolean append)
如果文件已经存在,前面两个构造器会清除该文件的所有内容。使用后面两个构造器,并设置append为true可以防止这种情况。
也可以在写入前判断:
if (file.exites()) {
System.out.println(“File temp.txt already exites”);
System.exit(0);
}
5. InputStreamReader / InputStreamWriter
可以在byte和char之间转换。编码方式可以是默认的,也可以由用户指定。
getEncoding()方法返回当前的编码方式名(String)。由于FileReader和FileWriter是他们的子类,因此也可以使用这个方法。
6. BufferedReader / BufferWriter
使用了一个字符数组作为缓冲区,减少读写次数,以提高读写速度。
在输入时,预先读入字符;输出时,先把内容暂存在数组中,分块输出到输出流。
构造器
java.io.BufferedReader(java.io.Reader)
java.io.BufferedReader(java.io.Reader, int)
java.io.BufferedWriter(java.io.Writer)
java.io.BufferedWriter(java.io.Writer, int)
int指定了缓冲区大小,默认为8192字节。
可以用BufferedReader/Writer类“包装”任何Reader/Writer流。
String BufferedReader.readLine()方法返回一行不带有换行符的文本,没有则返回null。
void BufferWriter.newLine()方法写入一个换行符
7. PrintWriter / PrintStream
以文本形式输出对象、字符串或者数值。PrintWriter被设计用于代替PrintStream,两者的输出功能几乎相同,但是前者更高效。
System.out就是一个静态的PrintStream对象,默认为屏幕控制端,可以通过System.setOut(PrintStream)重新设置。
两者都有许多重载的print/println方法,以及和C相似的printf。
PrintWriter的构造器(并不会抛出IOException异常)
public PrintWriter(Writer out)
public PrintWriter(Writer out, boolean autoFlush)
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
为什么Python中的self必须保留?
Python中inner function的binding处理
C# From a Java Programmer's Perspective
Singleton模式与双检测锁定(DCL)
C# 学习笔记 (1)
Java Puzzler - 数值处理中容易犯的错误
Java3D 入门笔记 (1)
Java 的类库真是方便啊
Java泛型中的? super T语法
Project3 成功转移到Ubuntu
Powered by:
BlogJava
Copyright © ZelluX
日历
<
2007年4月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(21)
给我留言
查看公开留言
查看私人留言
随笔分类
(390)
Algorithm(57)
C/C++(39)
Courses(15)
Economics(2)
Laboratory(25)
Linux(47)
Mathematics(12)
OOP(89)
Scripting(19)
Security(3)
System(28)
Web(10)
书、电影、音乐(11)
其他(14)
点滴(19)
随笔档案
(389)
2009年12月 (1)
2009年4月 (1)
2009年3月 (4)
2009年2月 (2)
2009年1月 (2)
2008年11月 (1)
2008年10月 (9)
2008年9月 (1)
2008年7月 (2)
2008年6月 (4)
2008年5月 (12)
2008年4月 (18)
2008年3月 (7)
2008年2月 (33)
2008年1月 (19)
2007年12月 (8)
2007年11月 (14)
2007年10月 (24)
2007年9月 (18)
2007年8月 (28)
2007年7月 (33)
2007年6月 (26)
2007年5月 (30)
2007年4月 (92)
文章档案
(7)
2007年7月 (2)
2007年5月 (4)
2007年4月 (1)
相册
Illustration
15ers
jonathan的BLOG
Right There...
宙斯鱼的小鱼缸
小鲍的世界
简单幸福
逃遁的Persephone
阿缪尔的锦瑟
风之语的BLOG
友情链接
(04CS) ljh
(05CS) 小菜虎的窝
(06CS) FreePeter
(06SS) Overboming
(06SS) Sherry
(06SS) 十指飞扬
(06SS) 银色子弹
luohandsome的专栏
平淡是真——啃啃不老阁
收藏夹
[ADN.cn]Library
Debian学习笔记
Dictionary of Algorithms and Data Structures
Gollum
Lex&Yacc
Max On Java
techInterview Discussion
核桃仁
程序员面试题精选100题
铁手
搜索
积分与排名
积分 - 334681
排名 - 168
最新随笔
1. 新博客
2. 慎用xen的make world...
3. 内存模型相关的资料
4. 安全方面的经典论文:A Logic of Authentication
5. Lock-Free 算法的几个链接
6. 10 Papers Every Programmer Should Read
7. PieTTY中按Ctrl+S导致挂起的问题解决
8. Finding and Reproducing Heisenbugs in Concurrent Programs
9. Ubuntu 8.10 浏览网页不稳定的解决方法
10. [zz]苏南经济模式兴衰亲历记
最新评论
1. re: C/C++中的序列点
说的太好了,解决我长久的困扰!
--除美灭日平韩
2. re: 原来GCC是支持尾递归的递推优化的
评论内容较长,点击标题查看
--darkhorse
3. re: Arch下配置samba服务
我按照你的方法,安装了SAMBA,但是 /etc/rc.d/samba start 启动不了samba服务。提示不存在这个文件或目录的,怎么办?
--zhangbear
4. re: [zz]LKM Rootkits on Linux x86 v2.6
rhel 5 系列 安装了 Xen 内核, 怎么rootkit xen kernel 呢?
--消息
5. re: CLRS 习题 16.2-6 部分背包问题的O(n)算法
@ynnej
T(n)=2T(n/2)+O(n) 才是 nlgn 注意其中有一个2
--荒废庭院
阅读排行榜
1. [zz]vim+ctags+taglist插件安装使用(18305)
2. memcpy函数代码分析(9372)
3. [zz]Zotero与Endnote的互相导入(8760)
4. BNF 文法 (1) - 语法树 | 二义性的解决(8228)
5. Java泛型中的? super T语法(6557)
评论排行榜
1. C# 学习笔记 (1)(14)
2. Windows - QQ、网页Flash视频无声音的解决方法(14)
3. URAL 1011(10)
4. 《编程之美》上的一道题目的讨论(8)
5. Singleton模式与双检测锁定(DCL)(7)