黑马程序员技术交流社区
标题:
关于IO流的问题
[打印本页]
作者:
晓风妮子
时间:
2013-4-22 16:26
标题:
关于IO流的问题
不明白IO流中,FileWriter中的flush和close方法有什么区别呢?
作者:
胡帅冰
时间:
2013-4-22 16:39
flush是刷新缓存区,仅仅只是刷新。close就是强制的刷新一下缓存区,然后关闭你已经打开的资源。
作者:
hacket
时间:
2013-4-22 17:44
flush()刷空输出流,并输出所有被缓存的字节 ,也就是刷空内存中的数据。
由于某些流支持缓存功能,该方法将把缓存中所有内容强制输出到流中。
close()关闭流 流操作完毕后必须关闭。
------关闭此流,但要先刷新它。在关闭该流之后,再调用 write() 或 flush() 将导致抛出 IOException。关闭以前关闭的流无效。
作者:
肖川
时间:
2013-4-22 18:33
FileWriter属于字符流,所以在执行写入动作的时候不会自动刷新缓存,为了提高效率,防止意外发生,比如突然断电,那么所有写在内存中的东西都白费力气了,所以,执行flush()方法,每写入一行或者多少个字节的东西就把缓冲刷新一下,将写入的东西刷新到输入文件中,而close()方法是关闭流资源,在执行该操作前会自动的刷新缓冲的写操作,flush()方法的出现是为了提高效率的,而close()方法是关闭资源的。如果使用的是字节流,那么就不会出现flush()方法了,因为字节流是实时自动刷新的。
作者:
黄玉昆
时间:
2013-4-22 21:42
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
作者:
陈湘林
时间:
2013-4-22 23:14
java还提供了一些特殊的流对象
文件流 File
打印流 PrintStream PrintWriter
管道流 PipedInputStream PipedOutputStream
序列流 SequenceInputStream
对象序列化流 ObjectInputStream ObjectOutputStream
(1)打印流
在整个IO包中,是输出信息最方便的流
java.io 类 PrintStream
构造方法摘要
PrintStream(File file)创建具有指定文件且不带自动行刷新的新打印流。
PrintStream(OutputStream out)创建新的打印流。
方法
void print(String s)打印字符串。
PrintStream
printf(String format, Object... args)使用指定格式字符串和参数将格式化的字符串写入此输出流的便捷方法。
void print(boolean b)打印 boolean 值。
void print(double d)打印双精度浮点数。
(2)System类中IO
java.lang 类 System
字段摘要
static PrintStream
err “标准”错误输出流。
static InputStream
in “标准”输入流。
static PrintStream
out “标准”输出流。
(3)BufferedReader
java.io 类 BufferedReader
构造方法摘要
BufferedReader(Reader in) 创建一个使用默认大小输入缓冲区的缓冲字符输入流。
方法
(4)String
readLine()读取一个文本行。
案例,标准的键盘输入数据
public static void main(String[] args) throws Exception{
BufferedReader buf=null;
buf=new BufferedReader(new InputStreamReader(System.in));//注意转换的过程,字节流转为了字符流
String str=null;//接受输入的内容
System.out.println("请输入:");
str=buf.readLine();
System.out.println("输入的是:"+str);
}
java.io 类 DataOutputStream
构造方法摘要
DataOutputStream(OutputStream out)创建一个新的数据输出流,将数据写入指定基础输出流。
方法
void writeChar(int v)将一个 char 值以 2-byte 值形式写入基础输出流中,先写入高字节。
void writeChars(String s)将字符串按字符顺序写入基础输出流。
void writeUTF(String str)以与机器无关方式使用 UTF-8 修改版编码将一个字符串写入基础输出流。
java.io 类 DataInputStream
构造方法摘要
DataInputStream(InputStream in)使用指定的基础 InputStream 创建一个 DataInputStream。
方法
char readChar()参见 DataInput 的 readChar 方法的常规协定。
float readFloat()参见 DataInput 的 readFloat 方法的常规协定。
String
readUTF()参见 DataInput 的 readUTF 方法的常规协定。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2