JAVA缓冲字符流在实例化传入的必须是字符流吗?

缓冲字符流在实例化传入的必须是字符流吗?可以传入 InputStream或OutputStream吗?
今天看代码遇到了这样的写法,不知道这种写法对不对,求告知原因!

OutputStream os=new FileOutputStream("pw.txt",true);
PrintWriter pw = new PrintWriter(os,true);

2个回答

首先你得捕获异常,应该这样
OutputStream os = null;
try {
os = new FileOutputStream("pw.txt", true);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
PrintWriter pw = new PrintWriter(os, true);

    这代码师妹问题的,字符缓冲流是可以传入字节流的,具体的PrintWriter这个类会按照你传的os转换成bytes,如果传的就是字节流就不要转换了,相应你传的如果是字符流就转换,这一切都是PrintWriter这个类帮我们处理好了。
u011844490
专修虚拟机 我又重新写了个还真能成功运行。但一般情况下这样写是不是不太规范啊?规范是不是应该写3个流 字节流、字符流、缓冲字符流后才开始操作啊?
大约 4 年之前 回复

不一定啊,字节流也可以啊,如BufferedOutputStream bufos = new BufferedOutputStream(new FileOutputStream("111.text"));你这种写法我没用过。

u011844490
专修虚拟机 ·················这个BufferedOutputStream和FileOutputStream好像都是字节流啊?
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Java测试字节流和字符流,以及带缓存的字符流读取速度对比
测试用的文件为txt格式文件,大小为2.12MBpackage IO;import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; /** * 我创建
Java精选笔记_IO流(字符输入输出流、字符文件输入输出流、字符流的缓冲区)
字符流 Reader是字符输入流的基类,用于从某个源设备读取字符 Writer是字符输出流,用于向某个目标设备写入字符 字符流操作文件 字符输入流FileReader,通过此流可以从关联的文件中读取一个或一组字符。 在程序开发中,经常需要向文件中写入字符,可以使用Writer的一个子类FileReader。 需求:在硬盘上,创建一个文件,并写入一些文字数据。 用于操作操作
字节缓冲流和字符缓冲流的对比
(输入)字节缓冲流和字符缓冲流的对比 BufferedReader BufferedInputStream BufferedReader bufr=new BufferedReader(fr);                           String line=null; while((line=bufr.readLine())!=nul
java-IO操作——使用带有缓冲的字符流读写数据
使用BufferedReader和PrintWriter实现文件拷贝package Test;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOut
字节流、字符流、字节缓冲流、字符缓冲流
//字节读流 FileInputStream fis=new FileInputStream(file); byte b[]=new byte[1024]; int len=0; while((len=fis.read(b))!=-1){ //将字节数组转成字符串 String s=new String(b, 0, len); System.out.println(s); }
JAVA,IO的字符、字节流,缓冲流,转换流,打印流
本文主要介绍,字符、字节流,缓冲流,转换流,打印流。 一、字节流(Output,Input):  1、OutputStream(字节输出流),写入方法write,可以写一个字节、字节数组,也可以规定写入某个字节数组的一部分。  2、InputStream(字节输入流),读取方法read,可以读一个字节、字节数组,也可以规定读取某个字节数组的一部分。 字符流(Reader,Write
字符流(缓冲区问题)
字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。 下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流。 范例:使用字节流不关闭执行 Java代码
Java中的字节流、缓冲流
一、Java中流的分类 1.字符流 Reader   Writer 字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节, 操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好。 2.字节流 InputStream   OutputStre
字符流需要刷新动作,字节流不需要刷新
http://bbs.itheima.com/thread-111331-1-1.html 字符流按字符操作,字节流按字节操作。 字符流一样用的字节,有缓冲区,字符流需要刷新动作,字节流不需要刷新
IO_缓冲流_转换流_字节转为字符_乱码分析_编码与解码JAVA152-154
IO_缓冲流_转换流_字节转为字符_乱码分析_编码与解码JAVA152-154
字节流 缓冲流 数据流
1、字节流 先了解流的概念 流分为输入流和输出流,一个对象的输入流是指从外界到这个对象的流,输出流则是从这个对象到它的外界的流。 例如:对于一个JAVA程序来说,它是运行在JVM(JAVA虚拟机)中的的,如果它想要从硬盘中读取文件,就要用到它的输入流,JVM通过向操作系统提出请求来获得输入流,以将磁盘中的文件内容传入到程序中。 而写入磁盘或者从磁盘中读取是通过读写字节或者读int型数据实现的
java文件流——缓冲字符流
文件流:文件在程序中是以流的形式来操作的 输入流:数据从数据源(文件)到程序(内存)的路径 输出流:数据从程序(内存)到数据源(文件)的路径 java流分为两种流:     1、字节流:可以用于读写二进制文件及任何文件 byte     2、字符流:可以用于读写文本文件,不能操作二进制文件 字节流 字符流 输入 InputStream     Reader
缓冲字符流
class Demo { public static void main(String[] args) { //缓冲字符流分为缓冲输入字符流和缓冲输出字符流 //BufferedReader 缓冲输入字符流目的是提高读文件的效率 //也是维护一个字符数组。他是一这个字符数组作为缓冲的 //找到目标文件 File file =
字符流 读取数据 中文乱码
出现此问题的原因:文件的编码,系统的编码,java的默认编码有冲突。 假如我们用FileReader这些类来读取系统文件,它调用的字符编码是java默认的UTF-8,但是一般WINDOW的TXT默认是ANSI,而自己本机的中文编码是GBK 所以读取数据就会出现代码,示例代码如下: BufferedReader reader = new BufferedReader(new FileReade
字节流、字符流和缓冲流
字节流和字符流,且他们都有输入流(从屏幕、硬盘或是其他数据源读取数据放入内存中)和输出流(用来向屏幕、硬盘等目的地输出内容),字节流就是一个字节一个字节的读取或是输出(字节都是8位,0到255之间的整数),而字符流是按照文本的那种字符来读取和输出,就是直接读取数字、字母或是中文字等这些我们能够直接识别的字符;至于缓冲流,是指当输出的时候带 有缓冲功能的流(BufferOutputStream)
java中I/O流之字节流和字符流学习总结
一、基本内容 如果要进行文件内容的操作那么必须依靠数据流完成,而数据流分为两种:   字节流:InputStream(字节输入流)、OutputStream(字节输出流);   字符流:Reader(字符输入流)、Writer(字符输出流); 字节流理解配图 字符流理解配图 字节流与字符流操作的本质区别只有一个:字节流是原生的操作,而字符流是经过处理后的操作。 在进...
Java-IO之BufferedReader(字符缓冲输入流)
BufferedReader是缓冲字符输入流,继承于Reader,BufferedReader的作用是为其他字符输入流添加一些缓冲功能。 BufferedReader主要的函数列表: BufferedReader(Reader in) BufferedReader(Reader in, int size) void close() void mark(int ma
IO流上:概述、字符流、缓冲区(java基础)
一、IO流概述 概述:          IO流简单来说就是Input和Output流,IO流主要是用来处理设备之间的数据传输,java对于数据的操作都是通过流实现,而java用于操作流的对象都在IO包中。 分类:         按操作数据分为:字节流和字符流。 如:Reader和InpurStream         按流向分:输入流和输出流。如:InputStream和Outp
java 字符输入流,字符输出流,字符缓冲流
1 字符输入流 字符流(Java IO的Reader和Writer)功能与InputStream和OutputStream非常类似,InputStream和OutputStream基于字节处理,而字符流(Reader和Writer)是基于字符处理。主要用于读写文本。 1.1 Reader 类的常用方法 Reader类是Java IO中所有Reader的基类。子类包括FileReade
java读取文件-字符流读取方式
java采用16位的Unicode来表示字符串和字符,对应的数据流就称为字符流。Reader和Writer为字符流设计。FileReader是InputStreamReader的子类,而InputStreamReader是Reader的子类;FileWriter是OutputStreamWriter的子类,而OutputStreamWriter则是Writer的子类。字符流和字节流的区别在于,字符
字节流与字符流的区别&&用字节流好还是用字符流好?
字节流: (A)FileOutputStream(File name) 创建一个文件输出流,向指定的 File 对象输出数据。 (B)FileOutputStream(FileDescriptor) 创建一个文件输出流,向指定的文件描述器输出数据。 (C)FileOutputStream(String name) 创建一个文件输出流,向指定名称的文件输出数据。
黑马程序员——Java基础---IO流(字符流、字节流、转换流、流操作规律)
简述: IO(Input Output) IO流用于处理设备之间的数据传输。(比如硬盘上的文件,内存中驻留的数据)IO流是用于操作数据的,数据的最常见体现形式是:文件。 Java对数据的数据的操作是通过流的方式。Java用于操作流的对象都在IO包中。流按操作数据分为两种:字节流和字符流。流按流向分为:输入流和输出流。 注意:流的操
字节流与字符流的详解,文件流,数据流
首先看一下File类的常用方法 •File类的对象不但可以表示文件,还可以表示目录,在程序中一个File类对象可以代表一个文件或目录; •当创建一个文件对象后,就可以利用它来对文件或目录的属性进行操作,如:文件名、最后修改日期、文件大小等等; 需要注意的是,File对象并不能直接对文件进行读/写操作,只能查看文件的属性; 方 法 原 型
字符流中Close()和flush()的区别
字符流中Close()和flush()的区别
JAVA——System.in/字符流与字节流
通过键盘录入数据 当录入一行数据后,就将该行数据进行打印 如果录入的数据是over,那么停止录入import java.io.*; class ReadIn { public static void main(String[] args)throws IOException { InputStream in = System.in; StringB
java字节流字符流以及高效缓冲流的使用
字节流一般用于传输视频文件等,字符流一般用于传输文本类型的文件。 Java的字节流 InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先。 Java的字符流 Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先。 结合开始所说的输入/输出流 ,出现了个一小框架。                      字节流
IO流之字符流与字符缓冲流
在I/O类库中,java.io.InputStream和java.io.OutputStream分别表示字节输入流和字节输出流,它们都是抽象类,不能实例化,数据流中的最小单位是字节,所以叫做字节流。  一、InputStream中的读取数据的方法如下:  1 、int read()  功能:读取一个字节的数据,并且返回读到得数据,如果返回-1,则表示读到输入流的末尾。  2、int read(by...
字符流和字节流的区别,使用场景,相关类
Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。 Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。而类 InputStreamReader 和 OutputStreamWr
java io 学习之三 字符流的缓冲区
/** 字符流的缓冲区 缓冲区的出现,提高了对数据的读写效率 对应的类: BufferedWriter BufferedReader 缓冲区要结合流才可以使用 缓冲区是在流的基础上对流的功能进行增强   软件的优化可以分为:设计优化和性能优化 设计优化:对代码进行重构,让代码实现更强的可扩展性和灵活性,复用性。 提高性能最常用的的手段是:缓冲区  线程池   Bu
InputStream字符输入流
package iotest.javase.test; import java.io.*; //单个读取 public class testio_03 { public static void main(String[] args) throws IOException { //第一步:定义要输出文件的File类对象 File file = new File("F:/io/hehe.j
使用字符流的方式进行文件的读取并打印至控制台
/*在D盘目录下创建HelloWorld.java 使用字符流的方式进行文件的读取并打印至控制台 计算所读取到的字符数,并在控制台打印 */ public class TestFile { public static void main(String[] args) throws IOException  {  File file=new File("D:/HelloWorld.jav
Java字节流与字符流的区别详解
字节流与字符流 先来看一下流的概念: 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。 程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。 字节流与字符流 在Java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入和输
Java中字符流之输入、输出流以及转换流
字符流字符流 一个字符一个字符的读 mac系统下,一个中文字符占3个字节 默认使用UTF-8的编码表(通用的编码表) Windows系统下,一个中文字符占2个字节 默认使用的GBK的编码表(简体中文) 注意:只能操作文本(不能写图片、音频、视频)字符输出流Writer(所有字符输出流的父类 抽象类) FileWriter 构造方法(绑定写入的路径): 文
Java 字节流与字符流(字符输出流:Writer)
import java.io.File; import java.io.FileWriter; import java.io.Writer; public class Demo { public static void main(String[] args) throws Exception { File file = new File("e:" + File.separator + "D...
Java 字节流与字符流的总结和理解
常用流的介绍Java 输入输出流中主要有几个重要的类,掌握了这几种,其他的流可以类比学习。 下面就着重学习以下的类: ***Inputstream Outputstream FileInputstream FileOutputstream Reader Writer FileReader FileWriter InputStreamReader OutputStream
Java字节流与字符流联系和不同,以及输入流和输出流
所谓的流,就像水流一样,是承载着字节和字符序列的的一个数据水流;输入流:是数据内容从文件流向内存;输出流:从内存流向文件java.io包中,包含所有流式I/O所需要的类,  在java.io包中, 处于java.io包最顶层的是java.io.InputStream :字节输入流, java.io.OutputStream:字节输出流。这两个类均为抽象类,也就是说它们不能被实例化,必须生成子类之后...
缓冲字符流读取案例快速读取
/* * 演示缓冲字符流案例 */package 缓冲字符流;import java.io.*;public class Test2 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub BufferedReader br=null; Buffe
java.io.BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
public class BufferedReaderextends Reader 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。 通常,Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 rea
JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine
JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine 我们继续IO上个篇幅讲 一.文本复制 读写都说了,我们来看下其他的操作,我们首先来看复制复制原理:其实就是将C盘下的文件数据存储到D盘的一个文件中 实现的步骤: 1.在D盘创建一个文件,用于存储文件中的数
Java 字节流 字符流 转换流
我们知道Java中的流分为字符流和字节流,其中字符流主要针对字符文本进行处理,而字节流处理范围更为广泛,毕竟图片、电影等只要是文件都是以二进制的形式存在的,而不是字符。 字符流: FileReader FileWriter。 BufferedReader BufferedWriter 字节流: FileInputStream FileOutputStream
使用字节流和字符流读取文件
使用字节流的方式进行文件的读取并打印至控制台:                import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class A { public static void main(String[] args)throws IOException {
判断字符流是不是UTF-8编码格式(读取文本文件需要转码时使用)
最近在做文本编辑器,在读取文本文件时出现乱码现象,GBK转 UTF-8简单,但是怎么去判断该文本文件读取流是不是GBK或者是UTF-8烦恼了好几天,尝试了好多方案都不太靠谱,无意中找到的一个方法测试挺管用的,记录一下,下次不用到处找了,直接上代码:package cn.com.demo.util; import java.io.UnsupportedEncodingException; public
字节缓冲输入流和字节缓冲输出流
字节缓冲输入流和字节缓冲输出流1、字节缓冲输入流和字节缓冲输出流(1)字节流一次读写一个数组的速度明显比一次读写一个字节的速度快很多,这是加入了数组这样的缓冲区效果。(2)java本身在设计的时候,也考虑到了这样的设计思想(装饰设计模式后面讲解),所以提供了字节缓冲区流。                字节缓冲输出流:BufferedOutputStream                字节缓冲...
Java中字符流和字节流到底有什么区别!!!
stream结尾都是字节流,reader和writer结尾都是字符流 两者的区别就是读写的时候一个是按字节读写,一个是按字符。 实际使用通常差不多。 在读写文件需要对内容按行处理,比如比较特定字符,处理某一行数据的时候一般会选择字符流。 只是读写文件,和文件内容无关的,一般选择字节流。
通过字符流读取中文数据
InputStreamReader:字节通向字符的桥梁 OutputStreamWriter:字符通向字节的桥梁 InputStreamReader的read()方法是一次读一个字符,实际上进行的是解码操作,要创建InputStreamReader对象首先要创建FileInputStream对象。 OutputStreamWriter的write()方法可以将一个字符或字符串先编码到缓冲区,
FileWriter字符流写入缓存限制
在操作文件字符读写的时候,出现了文字写入不全的情况,经过检查,发现FileWriter存在写入大小限制,最大为24KB,如图 代码如下: import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; /** * 作者:Haibo.Liu
Java字符流与字节流区别
Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。 Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。而类 InputStreamReader 和 OutputStreamWriter 处理字符流和字节流的转换。字符流(一次可以处理一个缓冲区)一次操作比字节流(一次一个字节)效率高。
通过字符流来对文件进行内容的读取和写入操作
import java.io.*; import java.io.Writer; public class WriterDemo01 { public static void main(String[] args) throws Exception{ File f=new File("C:\\Users\\xinle\\Desktop"+File.separator+"test.txt")
java泛型的使用(二)在实例化对象时不指定泛型,则自动识别为object
/** * *在定义类时,定义泛型 */ public class People { private T name; private T age; public People(){ } public T getName() { return name; } public void setName(T name) { this.name = name; }
Java-IO之BufferedWriter(字符缓冲输出流)
BufferedWriter是字符缓冲输出流,继承于Writer,作用是为其他字符输出流添加一些缓冲功能。 BufferedWriter主要的函数列表: BufferedWriter(Writer out) BufferedWriter(Writer out, int sz) void close() // 关闭此流,但要先刷新
相关热词 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片 c# 图片颜色调整 最快 c#多张图片上传 c#密封类与密封方法
立即提问