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

问题描述

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

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

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

解决方案

首先你得捕获异常,应该这样
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这个类帮我们处理好了。

解决方案二:

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

时间: 2024-09-15 11:10:18

字节流-JAVA缓冲字符流在实例化传入的必须是字符流吗?的相关文章

JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine

JAVA之旅(二十五)--文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine 我们继续IO上个篇幅讲 一.文本复制 读写都说了,我们来看下其他的操作,我们首先来看复制 复制原理:其实就是将C盘下的文件数据存储到D盘的一个文件中 实现的步骤: 1.在D盘创建一个文件,用于存储文件中的数据 2.定义读取流和文件关联 3.通过不断的读写完成数据的存储 关闭资源 package com.lgl.hel

Java 中 I/O 进制详解及I/O流小结

在Java世界里,99%的工作都是处理这高层.那么二进制,字节码这些会在哪里用到呢? 自问自答:在 跨平台 的时候,就凸显神功了.比如说 文件读写 , 数据通信 ,还有Java编译后的 字节码文件 .下面会有个数据通信的例子哦. Java对对象实现 Serializablle 接口,就可以将其转化为一系列 字节 ,而在通信中,不必要关系数据如何在不同机器表示和字节的顺序.这里泥瓦匠对 Serializablle 接口,不做详细讲解,以后单独详解. Java进制转换 首先认识下Java中的 数据类

剑指offer系列之五十三:字符流中第一个不重复的字符

题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出前六个字符"google"时,第一个只出现一次的字符是"l". 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符. 这题与前面的第一个不重复的字符有些重复了,所以直接看代码(已被牛客AC): package com.rhwayfun.offer; impor

麻烦帮忙解下这道题关于java缓冲输入输出流

问题描述 麻烦帮忙解下这道题关于java缓冲输入输出流 用带缓冲的输入输出流为demo.txt文件写入"hello demo"字符串,并将文件中的内容读出来和显示 解决方案 直接要代码,不是好做法.建议自己查一下API文档,在io包下,相信你应该就能做出来了

关于cpp和java父类对象由子类实例化的问题

问题描述 关于cpp和java父类对象由子类实例化的问题 父类对象由子类实例化有什么好处?实际上我只能想到该对象的优点就是访问父类的私有函数,其他的全部可以用子类对象来代替.否? 解决方案 我们经常有这种需求,主程序写好了,但是希望通过插件扩展功能(不修改主程序),或者我们希望编写一个程序,但是将一部分留给调用者去"填空". 在面向对象中,这就是我们为什么用继承的原因.主程序调用一个基类类型,以及其中的方法.而调用者可以通过派生这个类型,重写方法,实现代码的自定义,同时将派生类型传进去

初始化-java 中 抽象类不能被实例化 但为什么可以有构造器

问题描述 java 中 抽象类不能被实例化 但为什么可以有构造器 构造器不就是为了初始化对象而存在的吗 既然抽象类不能被实例化 那为什么 还要按个构造器 ? 解决方案 抽象类是不能被实例化,抽象类的目的就是为实现多态中的共同点,抽象类的构造器会在子类实例化时调用,因此它也是用来实现多态中的共同点构造 解决方案二: 构造函数可以在派生类中以Super(...)的形式调用,这样基类的构造就不用重复写了. 解决方案三: 抽象类可以有成员变量,他们的初始化怎么做呢?这么一样你就明白为什么抽象类可以有构造

java字符串-java中如何理解字符的长度减去一等于最后一个字符的索引

问题描述 java中如何理解字符的长度减去一等于最后一个字符的索引 java中如何理解字符的长度减去一等于最后一个字符的索引 字符的索引是什么意思 解决方案 说的是String里面的private final char value[];吗?value[value.length-1]不就是最后一个字符吗? 解决方案二: 从0开始,自然长度减1是最后 解决方案三: 字符串下标是从零开始,长度是从一计数,所以长度减一就是最后一位的下标 解决方案四: 里面有什么深意嘛?起始数字和习惯有差别

java线程建立时,实例化错误

问题描述 java线程建立时,实例化错误 MyTHread(String name,DingDong tt) { thrd=new Thread(this,name);//从new开始就错了··这是为什么? thrd.statr(); } 解决方案 this这个类实现了Runnable么?start也拼写错了 解决方案二: 参考:http://www.xuebuyuan.com/460311.html

stringbuffer-从键盘输入一个字符串和一个字符,从字符串中删除全部该字符(如果是字母,大小写都删除)

问题描述 从键盘输入一个字符串和一个字符,从字符串中删除全部该字符(如果是字母,大小写都删除) package lab; /** * @author Administrator */ import java.util.Scanner; public class Lab { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application