字符输出流:OutputStreamWriter

构造方法:一共4个,说2个常用的

A:OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换为字符流(eclise默认的是GBK编码表)

B:OutputStreamWriter(OutputStream out,String charsetName):根据指定编码把字节流数据转换为字符流

A:OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换为字符流

         OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(
"a.txt"));
out.write("中国是我们de祖国"); out.close();

B:OutputStreamWriter(OutputStream out,String charsetName):根据指定编码把字节流数据转换为字符流

         OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(
"osw.txt"), "UTF-8"); // 指定UTF-8
// 写数据
osw.write("中国是我们的祖国"); // 释放资源
osw.close();

字符输出流的方法:

A* public void write(int c):写一个字符
B* public void write(char[] cbuf):写一个字符数组
C* public void write(char[] cbuf,int off,int len):写一个字符数组的一部分
D* public void write(String str):写一个字符串
E* public void write(String str,int off,int len):写一个字符串的一部分

首先创建个字符输出流对象

OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(
"osw.txt"));

A* public void write(int c):写一个字符

osw.write('a');//看到的是a
osw.write(97);//这个看到的是W,因为这个是字符流,会根据编码表自动寻找值所对应的字符

B* public void write(char[] cbuf):写一个字符数组

  char[] chs = {'a','b','c','d','e'};
osw.write(chs);

C* public void write(char[] cbuf,int off,int len):写一个字符数组的一部分

 osw.write(chs,1,3);

D* public void write(String str):写一个字符串

osw.write("我爱睡觉");

E* public void write(String str,int off,int len):写一个字符串的一部分

osw.write("我爱睡觉", 2, 3);

注意:字符流有个跟字节流不同的类似xxx.close()的方法:xxx.flush();

那么,close()和flush()的区别呢:

A:close()关闭流对象,但是先刷新一次缓冲区。关闭之后,流对象不可以继续再使用了。
B:flush()仅仅刷新缓冲区,刷新之后,流对象还可以继续使用。flush方法是当你想把BufferedOutStream中的数据立即输出时,就调用。

也就是说,close()只能在流的结尾使用,因为一使用了,流对象就没了

而,flush()可以在途中使用,因为它仅仅是刷新作用

java 21 - 2 字符输出流的更多相关文章

  1. JAVA I/O 字符输出流简要概括

    偷个懒,直接参考上篇字符输入流Reader的形式,其实Reader和Writer本来就大同小异: 字符输出流Writer 本篇将对JAVA I/O流中的字符输出流Writer做个简单的概括: 总得来说 ...

  2. java 21 - 6 字符缓冲流的特殊方法以及该方法高效复制文件

    字符缓冲流的特殊方法: A.BufferedWriter: public void newLine():根据系统来决定换行符 private static void write() throws IO ...

  3. java 21 - 4 字符流的文件复制操作以及简化

    既然字节流可以复制文件,那么字符流当然也有. 同样的思路: 数据源: a.txt -- 读取数据 -- 字符转换流 -- InputStreamReader目的地: b.txt -- 写出数据 -- ...

  4. java 21 - 3 字符输入流

    所谓的输入流,就是读取文件中的数据 同样的,字符输入流InputStreamReader 4个构造方法,不过2个比较常用: 构造方法: A:InputStreamReader(InputStream ...

  5. Java读写文件,字符输入流FileReader 和 字符输出流FileWriter

    一个流被定义为一个数据序列.输入流用于从源文件读取数据,输出流用于向目标写数据. 字符输入流FileReader三种读文件方式 package com.shuzf.fileio; import jav ...

  6. java多线程的字符流与字节流

    字节流: package com.wz.thread.stream;import java.io.PipedOutputStream;/** * 字节输入流 * @author Administrat ...

  7. 字符输出流_Writer类&FileWriter类介绍和字符输出流的基本使用_写出单个字符到文件

    java.io.Writer:字符输出流,是所有字符输出流的最顶层的父类,是一个抽象类 共性的成员方法: - void write(int c) 写入单个字符 - void write(char[] ...

  8. 字符输出流_Writer类&FileWrite类介绍和字符输出流的基本使用_写出单个字符到文件

    字符输出流_Writer类&FileWrite类介绍 java.io.Writer:字符输出流,是所有字符输出流的最顶层的父类,是一个抽象类 共性抽象方法: void write(int c) ...

  9. Java将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

    java.io 类 BufferedWriter java.lang.Object java.io.Writer java.io.BufferedWriter BufferedWriter publi ...

随机推荐

  1. Android5.0新特性——Material Design简介

    Material Design Material Design简介 Material Design是谷歌新的设计语言,谷歌希望寄由此来统一各种平台上的用户体验,Material Design的特点是干 ...

  2. [Android] 环境配置之基础开发环境(SDK/Android Studio)(转)

    [Android] 环境配置之基础开发环境(SDK/Android Studio)   博客: blog.csdn.net/qiujuer 网站: www.qiujuer.net 开源库: Geniu ...

  3. GitHub 基本常用知识解答

    1.Fork.Watch.Star 是什么意思? fork的意思是从别人的代码库中复制一份到你自己的代码库,与普通的复制不同,fork包含了原有库中的所有提交记录, fork后这个代码库是完全独立的, ...

  4. IOS Quartz2D 通过UIColor生成图片

    普通生成 示例代码: //这里实现普通生成图片的方法 - (void)drawRect:(CGRect)rect { CGRect cxRect = CGRectMake(, , , ); UIGra ...

  5. Android Small插件化框架解读——Activity注册和生命周期

    通过对嵌入式企鹅圈原创团队成员degao之前发表的<Android Small插件化框架源码分析>的学习,对Android使用的插件化技术有了初步的了解,但还是有很多需要认真学习的地方,特 ...

  6. iOS中发送HTTP请求的方案

    在iOS中,常见的发送HTTP请求的方案有 苹果原生(自带) NSURLConnection:用法简单,最古老最经典的一种方案 NSURLSession:功能比NSURLConnection更加强大, ...

  7. Android开发者的Git&Github(一)

    安装Git: Linux(以Ubuntu为例): sudo apt-get install git-core Windows: 访问网址http://msysgit.github.io/下载安装包 下 ...

  8. LeetCode 1 Two Sum(二分法)

    题目来源:https://leetcode.com/problems/two-sum/ Given an array of integers, find two numbers such that t ...

  9. 转 android launch flow

    Android系统开机主要经历三个阶段: bootloader启动 Linux启动 Android启动 启动文件: 对于机器从通电到加载Linux系统一般需要三个文件:bootloader(引导文件) ...

  10. 使用sysbench进行压力测试

    sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试.数据库目前支持MySQL/Oracle/PostgreSQL/Drizzle,它主要包括以下几 ...