printwriter用法中java给定的缓冲区有多大?

下次自动登录
现在的位置:
& 综合 & 正文
Java中printwriter类的用法
printwriter类:
  java.io   类 PrintWriter  java.lang.Object  java.io.Writer  java.io.PrintWriter  所有已实现的接口:   Closeable, Flushable, Appendable   --------------------------------------------------------------------------------  public class PrintWriter extends Writer向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,应该使用未编码的字节流进行写入。   与 PrintStream 类不同,如果启用了自动刷新,则只有在调用 println、printf 或 format 的其中一个方法时才可能完成此操作,而不是每当正好输出换行符时才完成。这些方法使用平台自有的行分隔符概念,而不是换行符。   此类中的方法不会抛出 I/O 异常,尽管其某些构造方法可能抛出异常。客户端可能会查询调用 checkError() 是否出现错误。   从以下版本开始:   JDK1.1   --------------------------------------------------------------------------------  字段摘要   protected Writer out   此 PrintWriter 的底层字符输出流。   从类 java.io.Writer 继承的字段   lock   构造方法摘要   PrintWriter(File file)   使用指定文件创建不具有自动行刷新的新 PrintWriter。   PrintWriter(File file, String csn)   创建具有指定文件和字符集且不带自动刷行新的新 PrintWriter。   PrintWriter(OutputStream out)   根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。   PrintWriter(OutputStream out, boolean autoFlush)   通过现有的 OutputStream 创建新的 PrintWriter。   PrintWriter(String fileName)   创建具有指定文件名称且不带自动行刷新的新 PrintWriter。   PrintWriter(String fileName, String csn)   创建具有指定文件名称和字符集且不带自动行刷新的新 PrintWriter。   PrintWriter(Writer out)   创建不带自动行刷新的新 PrintWriter。   PrintWriter(Writer out, boolean autoFlush)   创建新 PrintWriter。   方法摘要   PrintWriter append(char c)   将指定字符添加到此 writer。   PrintWriter append(CharSequence csq)   将指定的字符序列添加到此 writer。   PrintWriter append(CharSequence csq, int start, int end)   将指定字符序列的子序列添加到此 writer。   boolean checkError()   如果流没有关闭,则刷新流且检查其错误状态。   protected void clearError()   清除此流的错误状态。   void close()   关闭该流并释放与之关联的所有系统资源。   void flush()   刷新该流的缓冲。   PrintWriter format(Locale l, String format, Object... args)   使用指定格式字符串和参数将一个格式化字符串写入此 writer 中。   PrintWriter format(String format, Object... args)   使用指定格式字符串和参数将一个格式化字符串写入此 writer 中。   void print(boolean b)   打印 boolean 值。   void print(char c)   打印字符。   void print(char[] s)   打印字符数组。   void print(double d)   打印 double 精度浮点数。   void print(float f)   打印一个浮点数。   void print(int i)   打印整数。   void print(long l)   打印 long 整数。   void print(Object obj)   打印对象。   void print(String s)   打印字符串。   PrintWriter printf(Locale l, String format, Object... args)   使用指定格式字符串和参数将格式化的字符串写入此 writer 的便捷方法。   PrintWriter printf(String format, Object... args)   使用指定格式字符串和参数将格式化的字符串写入此 writer 的便捷方法。   void println()   通过写入行分隔符字符串终止当前行。   void println(boolean x)   打印 boolean 值,然后终止该行。   void println(char x)   打印字符,然后终止该行。   void println(char[] x)   打印字符数组,然后终止该行。   void println(double x)   打印双精度浮点数,然后终止该行。   void println(float x)   打印浮点数,然后终止该行。   void println(int x)   打印整数,然后终止该行。   void println(long x)   打印 long 整数,然后终止该行。   void println(Object x)   打印 Object,然后终止该行。   void println(String x)   打印 String,然后终止该行。   protected void setError()   指示已发生错误。   void write(char[] buf)   写入字符数组。   void write(char[] buf, int off, int len)   写入字符数组的某一部分。   void write(int c)   写入单个字符。   void write(String s)   写入字符串。   void write(String s, int off, int len)   写入字符串的某一部分。   从类 java.lang.Object 继承的方法   clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait   字段详细信息   out  protected Writer out此 PrintWriter 的底层字符输出流。   从以下版本开始:   1.2   构造方法详细信息   PrintWriter  public PrintWriter(Writer out)创建不带自动行刷新的新 PrintWriter。   参数:  out - 字符输出流  --------------------------------------------------------------------------------  PrintWriter  public PrintWriter(Writer out,  boolean autoFlush)创建新 PrintWriter。   参数:  out - 字符输出流  autoFlush - boolean 变量;如果为 true,则 println、printf 或 format 方法将刷新输出缓冲区  --------------------------------------------------------------------------------  PrintWriter  public PrintWriter(OutputStream out)根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。此便捷构造方法创建必要的中间 OutputStreamWriter,后者使用默认字符编码将字符转换为字节。   参数:  out - 输出流  另请参见:  OutputStreamWriter.OutputStreamWriter(java.io.OutputStream)  --------------------------------------------------------------------------------  PrintWriter  public PrintWriter(OutputStream out,  boolean autoFlush)通过现有的 OutputStream 创建新的 PrintWriter。此便捷构造方法创建必要的中间 OutputStreamWriter,后者使用默认字符编码将字符转换为字节。   参数:  out - 输出流  autoFlush - boolean 变量;如果为 true,则 println、printf 或 format 方法将刷新输出缓冲区  另请参见:  OutputStreamWriter.OutputStreamWriter(java.io.OutputStream)  --------------------------------------------------------------------------------  PrintWriter  public PrintWriter(String fileName)  throws FileNotFoundException创建具有指定文件名称且不带自动行刷新的新 PrintWriter。此便捷构造方法创建必要的中间 OutputStreamWriter,后者将使用此 Java 虚拟机实例的默认 charset 进行字符编码。   参数:  fileName - 用作此 writer 目标的文件名称。如果存在该文件,则将其大小截取为零;否则,创建一个新文件。将输出写入文件中,并对其进行缓冲处理。   抛出:   FileNotFoundException - 如果给定的字符串不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他一些错误   SecurityException - 如果存在安全管理器,并且 checkWrite(fileName) 拒绝对文件进行写入访问。  从以下版本开始:   1.5   --------------------------------------------------------------------------------  PrintWriter  public PrintWriter(String fileName,  String csn)  throws FileNotFoundException,  UnsupportedEncodingException创建具有指定文件名称和字符集且不带自动行刷新的新 PrintWriter。此便捷构造方法创建必要的中间 OutputStreamWriter,后者将使用提供的字符集进行字符编码。   参数:  fileName - 用作此 writer 目标的文件名称。如果存在该文件,则将其大小截取为零;否则,创建一个新文件。将输出写入文件中,并对其进行缓冲处理。  csn - 受支持的字符集的名称   抛出:   FileNotFoundException - 如果给定的字符串不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他一些错误   SecurityException - 如果存在安全管理器,并且 checkWrite
&&&&推荐文章:
【上篇】【下篇】Java流缓冲区问题_第2页 - 中华考试网()
&&当前位置: >
> 文章内容
Java流缓冲区问题_第2页 &&【
】&&[ 日 ]
接下来又是我遇到的一个例子,这个例子也很明显的反应出缓冲区的问题。
import java.io.BufferedRimport java.io.FileRimport java.io.FileWimport java.io.IOEimport java.io.PrintWimport java.util.Cimport java.util.Dimport java.util.GregorianCimport java.util.Simport java.util.StringT
public class StringTokenizerTest {
&&& public static void main(String[] args) {&&&&&&& Employee[] e = new Employee[3];&&&&&&& e[0] = new Employee("Carl Cracker", 7, 12, 15);&&&&&&& e[1] = new Employee("Harry Hacker", 5, 10, 1);&&&&&&& e[2] = new Employee("Tony Tester", 4, 3, 15);&&&&&&& try {&&&&&&&&&&& PrintWriter out = new PrintWriter(new FileWriter("1.txt"));&&&&&&&&&&& writeData(e, out);&&&&&&&&&&& // out.close();**********************************************************************&&&&&&& } catch (Exception e1) {&&&&&&&&&&& e1.printStackTrace();&&&&&&& }&&&&&&& System.out.println("*******是否要读取数据?********");&&&&&&& Scanner in1 = new Scanner(System.in);&&&&&&& String yes = in1.nextLine();&&&&&&& if (yes.equalsIgnoreCase("YES")) {&&&&&&&&&&& try {&&&&&&&&&&&&&&& BufferedReader in = new BufferedReader(new FileReader("1.txt"));&&&&&&&&&&&&&&& Employee[] result = readData(in);&&&&&&&&&&&&&&& for (int i = 0; i & result. i++)&&&&&&&&&&&&&&&&&&& System.out.println(result[i]);&&&&&&&&&&&&&&& in.close();&&&&&&&&&&& } catch (Exception e2) {&&&&&&&&&&&&&&& e2.printStackTrace();&&&&&&&&&&& }&&&&&&& }
&&& public static Employee[] readData(BufferedReader in) throws IOException {&&&&&&& int length = Integer.parseInt(in.readLine());&&&&&&& Employee[] e = new Employee[length];&&&&&&& for (int i = 0; i & i++) {&&&&&&&&&&& String line = in.readLine();&&&&&&&&&&& StringTokenizer token = new StringTokenizer(line, "|");&&&&&&&&&&& String name = token.nextToken();&&&&&&&&&&& double salary = Double.parseDouble(token.nextToken());&&&&&&&&&&& int year = Integer.parseInt(token.nextToken());&&&&&&&&&&& int month = Integer.parseInt(token.nextToken());&&&&&&&&&&& int day = Integer.parseInt(token.nextToken());&&&&&&&&&&& e[i] = new Employee(name, salary, year, month, day);&&&&&&& }&&&&&&&&&& }
&&& public static void writeData(Employee[] e, PrintWriter out) {&&&&&&& out.println(e.length);&&&&&&& for (int i = 0; i & e. i++) {&&&&&&&&&&& String name = e[i].getName();&&&&&&&&&&& double salary = e[i].getSalary();&&&&&&&&&&& Date date = e[i].getHireDay();&&&&&&&&&&& Calendar c = new GregorianCalendar();&&&&&&&&&&& c.setTime(date);&&&&&&&&&&& int year = c.get(Calendar.YEAR);&&&&&&&&&&& int month = c.get(Calendar.MONTH) + 1;&&&&&&&&&&& int day = c.get(Calendar.DAY_OF_MONTH);&&&&&&&&&&& out.println(name + "|" + salary + "|" + year + "|" + month + "|"&&&&&&&&&&&&&&&&&&& + day);
&&&&&&& }&&&&&&& System.out.println("********写入数据完毕********");&&& }
class Employee {&&& public Employee(String n, double s, int year, int month, int day) {&&&&&&& name =&&&&&&& salary =&&&&&&& GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);&&&&&&& hireDay = calendar.getTime();&&& }
&&& public String getName() {&&&&&&&&&& }
&&& public double getSalary() {&&&&&&&&&& }
&&& public Date getHireDay() {&&&&&&& return hireD&&& }
&&& public void raiseSalary(double byPercent) {&&&&&&& double raise = salary * byPercent / 100;&&&&&&& salary +=&&& }
&&& public String toString() {&&&&&&& return getClass().getName() + "[name=" + name + ",salary=" + salary&&&&&&&&&&&&&&& + ",hireDay=" + hireDay + "]";&&& }
&&& private S
&&& private Date hireD}  结果是没有向文件写入任何数据,为什么呢?
  唯一的错误就在main方法中没有调用out.close(),把数据从缓冲区刷新到文件。因此用完资源即时关闭是很重要的。
  本书以国家人力资源和社会保障部人事考试中心2010年颁布的《全国专业技术人员计..
定价:¥39.80
优惠价:¥29.90&&《全国专业技术人员计算机应用能力考试专用教程――PowerPoint&2003中文演示文稿》以..
定价:¥39.80
优惠价:¥29.90&&
????????????
????????????
         Copyright ©
() All Rights Reserved76Java JDK6学习笔记-第9页
上亿文档资料,等你来发现
76Java JDK6学习笔记-9
importjava.io.*;;publicclassFileReaderWri;publicstaticvoidmain(Str;try{;FileReaderfileReader=;newFileReader(args[0]);;FileWriterfileWriter=;newFileWriter(args[0]+&q;intin=0;;char[]
import java.io.*;public class FileReaderWriterDemo {public static void main(String[] args) {try {FileReader fileReader =new FileReader(args[0]);FileWriter fileWriter =new FileWriter(args[0] + &.txt&);int in = 0;char[] wlnChar = {'\r', '\n'};while((in = fileReader.read()) != -1) {if(in == '\n') {// 写入&\r\n&fileWriter.write(wlnChar);}elsefileWriter.write(in);}fileReader.close();fileWriter.close();}catch(ArrayIndexOutOfBoundsException e) {System.out.println(&请指定文件&);}catch(IOException e) {e.printStackTrace();}}}14.3.4 BufferedReader和BufferedWriterjava.io.BufferedReader与java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出至目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。例如一个文件,通过缓冲区可减少对硬盘的输入/输出动作,以提高文件存取的效率。之前在介绍取得用户输入时,就使用过BufferedReader。从标准输入流System.in中直接读取用户输入时,用户每输入一个字符,System.in就读取一个字符。为了能一次读取一行用户的输入,使用了BufferedReader来对用户输入的字符进行缓冲。readLine()方法会在读取到用户的换行字符时,再一次将整行字符串传入。System.in是一个位流,为了转换为字符流,可使用InputStreamReader为其进行字符转换,然后再使用BufferedReader为其增加缓冲功能。例如:BufferedReader reader =new BufferedReader(new InputStreamReader(System.in));范例14.19示范了BufferedReader与BufferedWriter的使用。可以在文字模式下输入字符,程序会将输入的文字存储至指定的文件中,如果要结束程序,输入quit字符串即可。ü 范例14.19
BufferedReaderWriterDemo.javapackage onlyfun.import java.io.*;public class BufferedReaderWriterDemo {public static void main(String[] args) {try {// 缓冲System.in输入流BufferedReader bufReader =new BufferedReader(new InputStreamReader(System.in));// 缓冲FileWriter字符输出流BufferedWriter bufWriter =new BufferedWriter(new FileWriter(args[0]));String input =// 每读一行进行一次写入动作while(!(input =bufReader.readLine()).equals(&quit&)) {bufWriter.write(keyin);// newLine()方法写入与操作系统相依的换行字符bufWriter.newLine();}bufReader.close();bufWriter.close();}catch(ArrayIndexOutOfBoundsException e) {System.out.println(&没有指定文件&);}catch(IOException e) {e.printStackTrace();}}}由于换行字符依操作系统不同而有所区别,在Windows下是\r\n,在Linux下是\n,在Mac OS下是\r,您可以使用newLine()方法,由执行环境依当时的操作系统决定该输出哪一种换行字符。14.3.5 PrintWriter14.2.7节曾经介绍过PrintStream,它可以将Java的基本数据类型等数据,直接转换为系统默认编码下对应的字符,再输出至OutputStream中。而这里要介绍的 java.io.PrintWriter在功能上与PrintStream类似,除了接受OutputStream实例作为变量之外,PrintWriter还可以接受Writer对象作为输出的对象。当原先是使用Writer对象在作字符处理,而现在想要套用println()之类的方法时,使用PrintWriter会是比较方便的作法。范例14.20显示了PrintStream与PrintWriter两个对象在处理相同输出目的时的作法,程序会输出简体中文GB2312编码的文字至指定的文件中。 ü 范例14.20
StreamWriterDemo.javapackage onlyfun.import java.io.*;public class StreamWriterDemo {public static void main(String[] args) {try {// “简体中文”四个字的 GB2312 编码byte[] sim = {(byte)0xbc, (byte)0xf2,(byte)0xcc, (byte)0xe5,(byte)0xd6, (byte)0xd0,(byte)0xce, (byte)0xc4};// 数组作为流来源ByteArrayInputStream byteArrayInputStream =new ByteArrayInputStream(sim);InputStreamReader inputStreamReader =new InputStreamReader(byteArrayInputStream, &GB2312&);// PrintWriter还接受Writer实例作为变量PrintWriter printWriter =new PrintWriter(new OutputStreamWriter(new FileOutputStream(args[0]), &GB2312&));int in = 0;printWriter.print(&PrintWriter: &);// 写入数组内容while((in = inputStreamReader.read()) != -1)
{printWriter.print((char)in);}printWriter.println();printWriter.close();byteArrayInputStream.reset();// PrintStream 接受OutputStream实例作为变量PrintStream printStream =new PrintStream(new FileOutputStream(args[0], true),true, &GB2312&);printStream.print(&PrintStream: &);// 写入数组内容while((in = inputStreamReader.read()) != -1)
{printStream.print((char)in);}printStream.println();inputStreamReader.close();printStream.close();}catch(ArrayIndexOutOfBoundsException e) {System.out.println(&没有指定文件&);}catch(IOException e) {e.printStackTrace();}}}由于执行后文件中的文字是GB2312编码,所以必须使用指定编码的文字检视器才可以正确看到文字内容。最简单的方式就是使用浏览器并指定视图编码为GB2312,输出的文本文件内容如图14-4所示。 图14-4
使用Internet Explorer查看范例14.20的输出文件14.3.6 CharArrayReader和CharArrayWriter在14.2.8节介绍了ByteArrayInputStream、ByteArrayOutputStream,它们是将位数组当作流输入来源、输出目的地的工具类。与其类似的是java.io.Char包含各类专业文献、应用写作文书、行业资料、各类资格考试、中学教育、文学作品欣赏、76Java JDK6学习笔记等内容。 
 Java JDK6学习笔记之IO部分_IT/计算机_专业资料。Java JDK6学习笔记是一本不错的书,尤其是其IO部分输入/输出 第 14 章 IO 输入 输出输入/输出 第 14 章 输...  java学习笔记JDK6课件 第1... 26页 1财富值喜欢此文档的还喜欢 Java学习笔记(必看经典) 30页 免费 最新JAVA编程题全集(50题及... 31页 免费 JAVA程序设计...  Java JDK6学习笔记 3页 免费 java学习笔记JDK6第19章 48页 1财富值 java学习...private class Inner { Java 面向对象高级特性 指出下面程序中出现编译错误的行数...  webservice 笔记 2页 1下载券 Java JDK6学习笔记 3页 免费 JSP与JavaBean Web...JDK6 开发 Webservice 笔记简介: 简介: Jdk6 中集成的 webservice 即为 Java...  java学习笔记JDK6课件 第... 26页 1下载券喜欢此文档的还喜欢 ...{ private T Gen&T& { Java 泛型编程 1. 请完成下面程序,使得程序...  java学习笔记_计算机软件及应用_IT/计算机_专业资料。目录 CoreJava DAY01 Java...五、配置环境变量 JAVA_HOME:JDK 的安装路径 CLASSPATH:类的搜索路径 PATH:...  java私塾学习笔记整理_计算机软件及应用_IT/计算机_专业资料。第一章 Java 入门 一、 Java 是什么??一种计算机编程语言 ?一种软件开发平台 ?一种软件运行平台...  \java_tool\jdk6 注:这里的 D:\java_tool\jdk6 就是解压缩 jdk6 到本机...Java JDK6学习笔记 3页 免费 JDK下载地址(最新版JDK6... 3页 1下载券喜欢...  Java编程思想学习笔记_计算机硬件及网络_IT/计算机_专业资料。Java编程思想学习笔记...JDK 动态代理的要素: (1).实现了 InvocationHandler 的代理处理类,实现其 ...Writer (Java 2 Platform SE 6)
<META NAME="keywords" CONTENT="概述, JavaTM 2 Platform Standard Edition 6API 开发人员文档">
JavaTM&2&PlatformStandard&Ed. 6
java.io.Writer
所有已实现的接口: , ,
直接已知子类: , , , , , ,
public abstract class Writerextends implements , ,
写入字符流的抽象类。子类必须实现的方法仅有 write(char[], int, int)、flush() 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。
从以下版本开始:
另请参见:,
protected &
&&&&&&&&&&用于同步针对此流的操作的对象。
&&&&&&&&&&创建一个新的字符流 writer,其关键部分将同步 writer 自身。
&&&&&&&&&&创建一个新的字符流 writer,其关键部分将同步给定的对象。
&&&&&&&&&&将指定字符添加到此 writer。
&&&&&&&&&&将指定字符序列添加到此 writer。
int&start,
&&&&&&&&&&将指定字符序列的子序列添加到此 writer.Appendable。
abstract &void
&&&&&&&&&&关闭此流,但要先刷新它。
abstract &void
&&&&&&&&&&刷新该流的缓冲。
(char[]&cbuf)
&&&&&&&&&&写入字符数组。
abstract &void
(char[]&cbuf,
&&&&&&&&&&写入字符数组的某一部分。
&&&&&&&&&&写入单个字符。
&&&&&&&&&&写入字符串。
&&&&&&&&&&写入字符串的某一部分。
, , , , , , , , , ,
用于同步针对此流的操作的对象。为了提高效率,字符流对象可以使用其自身以外的对象来保护关键部分。因此,子类应使用此字段中的对象,而不是 this 或者同步的方法。
protected Writer()
创建一个新的字符流 writer,其关键部分将同步 writer 自身。
protected Writer(&lock)
创建一个新的字符流 writer,其关键部分将同步给定的对象。
参数:lock - 要同步的对象。
public void write(int&c)
写入单个字符。要写入的字符包含在给定整数值的 16 个低位中,16 高位被忽略。
用于支持高效单字符输出的子类应重写此方法。
参数:c - 指定要写入字符的 int。
- 如果发生 I/O 错误
public void write(char[]&cbuf)
写入字符数组。
参数:cbuf - 要写入的字符数组
- 如果发生 I/O 错误
public abstract void write(char[]&cbuf,
写入字符数组的某一部分。
参数:cbuf - 字符数组off - 开始写入字符处的偏移量len - 要写入的字符数
- 如果发生 I/O 错误
public void write(&str)
写入字符串。
参数:str - 要写入的字符串
- 如果发生 I/O 错误
public void write(&str,
写入字符串的某一部分。
参数:str - 字符串off - 相对初始写入字符的偏移量len - 要写入的字符数
- 如果 off 或 len 为负,或者 off+len 为负或大于给定字符串的长度
- 如果发生 I/O 错误
append(&csq)
将指定字符序列添加到此 writer。
以 out.append(csq) 的形式调用此方法,行为与以下调用完全相同:
out.write(csq.toString())
可能不添加整个序列,也可能添加,具体取决于字符序列 csq 的 toString 规范。例如,调用一个字符缓冲区的 toString 方法将返回一个子序列,其内容取决于缓冲区的位置和限制。
指定者:接口
参数:csq - 要添加的字符串序列。如果 csq 为 null,则向此 writer 添加四个字符 &null&。
返回:此 writer
- 如果发生 I/O 错误从以下版本开始:
append(&csq,
int&start,
将指定字符序列的子序列添加到此 writer.Appendable。
当 csq 不为 null 时,以 out.append(csq, start, end) 的形式调用此方法,行为与以下调用完全相同:
out.write(csq.subSequence(start, end).toString())
指定者:接口
参数:csq - 要添加子序列的字符序列。如果 csq 为 null,则添加四个字符 &null&,就好像 csq 包含这些字符一样。start - 子序列中第一个字符的索引end - 子序列中最后一个字符后面的字符的索引
返回:此 writer
- 如果 start 或 end 为负,而 start 大于 end 或者 end 大于 csq.length()
- 如果发生 I/O 错误从以下版本开始:
append(char&c)
将指定字符添加到此 writer。
以 out.append(c) 的形式调用此方法,行为与以下调用完全相同:
out.write(c)
指定者:接口
参数:c - 要添加的 16 位字符
返回:此 writer
- 如果发生 I/O 错误从以下版本开始:
public abstract void flush()
刷新该流的缓冲。如果该流已保存缓冲区中各种 write() 方法的所有字符,则立即将它们写入预期目标。然后,如果该目标是另一个字符或字节流,则将其刷新。因此,一次 flush() 调用将刷新 Writer 和 OutputStream 链中的所有缓冲区。
如果此流的预期目标是由底层操作系统提供的一个抽象(如一个文件),则刷新该流只能保证将以前写入到流的字节传递给操作系统进行写入,但不保证能将这些字节实际写入到物理设备(如磁盘驱动器)。
指定者:接口
- 如果发生 I/O 错误
public abstract void close()
关闭此流,但要先刷新它。在关闭该流之后,再调用 write() 或 flush() 将导致抛出 IOException。关闭以前关闭的流无效。
指定者:接口
- 如果发生 I/O 错误
JavaTM&2&PlatformStandard&Ed. 6
版权所有 2008 Sun Microsystems, Inc. 保留所有权利。请遵守。

我要回帖

更多关于 缓冲区溢出 的文章

 

随机推荐