前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java IO体系之OutputStreamWriter

Java IO体系之OutputStreamWriter

作者头像
全栈程序员站长
发布2022-11-04 14:28:13
2340
发布2022-11-04 14:28:13
举报

大家好,又见面了,我是你们的朋友全栈君。

介绍

  • 字符输出流Writer 的实现类

继承关系图

在这里插入图片描述
在这里插入图片描述

样例

代码语言:javascript
复制
public static void main(String[] args) throws IOException{ 
   
    //创建字节输出流,绑定数据文件(没有则创建)
    FileOutputStream fos=new FileOutputStream("D:\\HELLO.txt");
    // 创建转换流对象,构造方法,绑定字节输出流
    OutputStreamWriter osw=new OutputStreamWriter(fos, "UTF-8");
    //转换流写数据(覆盖写)
    osw.append("春天到了").append("\r\n").append("春暖花开");
    osw.close();
    fos.close();
}

源码

代码语言:javascript
复制
package java.io;
import java.nio.charset.Charset;
import java.nio.charset.CharsetEncoder;
import sun.nio.cs.StreamEncoder;
public class OutputStreamWriter extends Writer { 

private final StreamEncoder se;
/** * Creates an OutputStreamWriter that uses the named charset. */
public OutputStreamWriter(OutputStream out, String charsetName)
throws UnsupportedEncodingException
{ 

super(out);
if (charsetName == null)
throw new NullPointerException("charsetName");
se = StreamEncoder.forOutputStreamWriter(out, this, charsetName);
}
/** * Creates an OutputStreamWriter that uses the default character encoding. * * @param out An OutputStream */
public OutputStreamWriter(OutputStream out) { 

super(out);
try { 

se = StreamEncoder.forOutputStreamWriter(out, this, (String)null);
} catch (UnsupportedEncodingException e) { 

throw new Error(e);
}
}
/** * Creates an OutputStreamWriter that uses the given charset. * * @since 1.4 * @spec JSR-51 */
public OutputStreamWriter(OutputStream out, Charset cs) { 

super(out);
if (cs == null)
throw new NullPointerException("charset");
se = StreamEncoder.forOutputStreamWriter(out, this, cs);
}
/** * Creates an OutputStreamWriter that uses the given charset encoder. * * @since 1.4 * @spec JSR-51 */
public OutputStreamWriter(OutputStream out, CharsetEncoder enc) { 

super(out);
if (enc == null)
throw new NullPointerException("charset encoder");
se = StreamEncoder.forOutputStreamWriter(out, this, enc);
}
/** * Returns the name of the character encoding being used by this stream. * * <p> If the encoding has an historical name then that name is returned; * otherwise the encoding's canonical name is returned. * * * @revised 1.4 * @spec JSR-51 */
public String getEncoding() { 

return se.getEncoding();
}
/** * Flushes the output buffer to the underlying byte stream, without flushing * the byte stream itself. This method is non-private only so that it may * be invoked by PrintStream. */
void flushBuffer() throws IOException { 

se.flushBuffer();
}
/** * Writes a single character. * * @exception IOException If an I/O error occurs */
public void write(int c) throws IOException { 

se.write(c);
}
/** * Writes a portion of an array of characters. * * @param cbuf Buffer of characters * @param off Offset from which to start writing characters * @param len Number of characters to write * * @exception IOException If an I/O error occurs */
public void write(char cbuf[], int off, int len) throws IOException { 

se.write(cbuf, off, len);
}
/** * Writes a portion of a string. * * @param str A String * @param off Offset from which to start writing characters * @param len Number of characters to write * * @exception IOException If an I/O error occurs */
public void write(String str, int off, int len) throws IOException { 

se.write(str, off, len);
}
/** * Flushes the stream. * * @exception IOException If an I/O error occurs */
public void flush() throws IOException { 

se.flush();
}
public void close() throws IOException { 

se.close();
}
}

FileWriter源码

代码语言:javascript
复制
package java.io;
public class FileWriter extends OutputStreamWriter { 

/** * Constructs a FileWriter object given a file name. * * @param fileName String The system-dependent filename. * @throws IOException if the named file exists but is a directory rather * than a regular file, does not exist but cannot be * created, or cannot be opened for any other reason */
public FileWriter(String fileName) throws IOException { 

super(new FileOutputStream(fileName));
}
/** * Constructs a FileWriter object given a file name with a boolean * indicating whether or not to append the data written. * * @param fileName String The system-dependent filename. * @param append boolean if <code>true</code>, then data will be written * to the end of the file rather than the beginning. * @throws IOException if the named file exists but is a directory rather * than a regular file, does not exist but cannot be * created, or cannot be opened for any other reason */
public FileWriter(String fileName, boolean append) throws IOException { 

super(new FileOutputStream(fileName, append));
}
/** * Constructs a FileWriter object given a File object. * * @param file a File object to write to. * @throws IOException if the file exists but is a directory rather than * a regular file, does not exist but cannot be created, * or cannot be opened for any other reason */
public FileWriter(File file) throws IOException { 

super(new FileOutputStream(file));
}
/** * Constructs a FileWriter object given a File object. If the second * argument is <code>true</code>, then bytes will be written to the end * of the file rather than the beginning. * * @param file a File object to write to * @param append if <code>true</code>, then bytes will be written * to the end of the file rather than the beginning * @throws IOException if the file exists but is a directory rather than * a regular file, does not exist but cannot be created, * or cannot be opened for any other reason * @since 1.4 */
public FileWriter(File file, boolean append) throws IOException { 

super(new FileOutputStream(file, append));
}
/** * Constructs a FileWriter object associated with a file descriptor. * * @param fd FileDescriptor object to write to. */
public FileWriter(FileDescriptor fd) { 

super(new FileOutputStream(fd));
}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年9月12日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 继承关系图
  • 样例
  • 源码
  • FileWriter源码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档