IO流 写入转换流(写入和读取转换流的区别,考虑方向)

package com.yyq;
import java.io.*;
/* 读取转换流(InputStreamReader) 是字节通向字符的桥梁
 *   写入的时候是字节,但是读取的时候是字符,这叫做字节转字符
 * 写入转换流(OutputStreamWriter)是字符流通向字节流的桥梁??
 *   录入的时候是字符,存储的时候总是字节,这就叫做字符转字节
 */
public class OutPutStreamWriterDemo {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        InputStream in = System.in;
        // 键盘录入最常见的写法。
        BufferedReader fr = new BufferedReader(new InputStreamReader(System.in));
        OutputStream out = System.out;  // 字节流
        OutputStreamWriter osw = new OutputStreamWriter(out);
        BufferedWriter bufw = new BufferedWriter(osw);
        // BufferedWriter 写的时候是字符流 ,实际往内存或文件中写完成的是字节流
        while(true){
            String line = fr.readLine();
            if(line.equals("over")){
                break;
            }
            bufw.write(line);
            bufw.newLine();
            bufw.flush();  // 写出操作需要刷新

        }

    }

}
时间: 2024-12-14 17:44:14

IO流 写入转换流(写入和读取转换流的区别,考虑方向)的相关文章

IO流(二):字节流及其缓冲流

一.IO概述 1.分类 1) 流向: 输入流 读取数据 输出流 写出数据 2)  数据类型: 字节流 字节输入流 读取数据 InputStream 字节输出流 写出数据 OutputStream 字符流  字符输入流 读取数据 Reader 字符输出流 写出数据 Writer 注意: 一般我们在探讨IO流的时候,如果没有明确说明按哪种分类来说,默认情况下是按照数据类型来分的. 每种基类的子类都是以父类名作为后缀名. XxxOutputStream XxxInputStream XxxReader

黑马程序员——Java基础---IO(三)--File类、Properties类、打印流、序列流(合并流)

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- File类 一.概述 1.File类:文件和目录路径名的抽象表现形式 2.特点: 1)用来将文件或文件夹封装成对象 2)方便于对文件与文件夹的属性信息进行操作,因此是对流操作的一种补充 3)File类的实例是不可变的:也就是说,一旦创建,

Java基础---IO(二)--File类、Properties类、打印流、序列流(合并流)

第一讲     File类 一.概述 1.File类:文件和目录路径名的抽象表现形式 2.特点: 1)用来将文件或文件夹封装成对象 2)方便于对文件与文件夹的属性信息进行操作 3)File类的实例是不可变的:也就是说,一旦创建,File 对象表示的抽象路径名将永不改变 4)File对象可以作为参数传递给流的构造函数 二.File对象创建 方式一: File f =new File("a.txt"); 将a.txt封装成File对象.可以将已有的和未出现的文件或者文件夹封装成对象. 方式

合并流以及已知文件流长度和未知文件长度的文件流读取方法

项目中有一个这样的需求,上传文件的时候需要多张文件一起上传,而且每张文件都有自己的文件信息,因为文件信息需要匹配验证,在处理过程中需要传输流的时候前半段固定长度为文件信息,后半段是文件流,而且还是多张批量的情况,经过不断摸索最终想出一个方案:那就是采用合并流,示意图如下: 批次信息[256]+文件信息流1[1024]+文件流1+文件信息流2[1024]+文件流2+文件信息流3[1024]+文件流3--. 前面256是固定长度的一个流,里面是文件数量等信息,文件批量上传的时候就可以根据文件数量来循

【幻化万千戏红尘】qianfengDay20-java基础学习:数据流、随机读取文件流RandomAccessFile

课程回顾: 流:转换流:字符和字节的转换对象流(Object):序列化,反序列化 打印流(Print):打印各种数据类型的数据 今日内容:数据流(Data):支持将基本数据类型写出,字节流,处理流1.DataOutputStream:数据输出字节流常用方法:writeXXX:写出基本数据类型的数据writeUTF:写出字符串2.DataInputStream:数据输入字节流常用方法:readXXX:读取基本数据类型的数据readUTF:读取字符串 随机读取文件类:拥有写出和读取基本数据类型的方法

FFmpeg命令读取RTMP流如何设置超时时间

子标题:FFmpeg命令录制RTMP流为FLV文件时如何设置超时时间 | FFmpeg命令如何解决录制产生阻塞的问题   0x001: 前言 今天在测试程序时遇到两个问题.Q1:ffmpeg录制RTMP流并保存为FLV文件时,推RTMP流的线程已经结束断掉了,而录制的线程却还一直在录.Q2:ffmpeg录制RTMP流并保存为FLV文件时,被录制的RTMP流并未推流或并无此房间频道,而录制的线程却还一直在录. 观察日志文件发现录制程序一直阻塞在某个时间点上,经查验这是因为ffmpeg在拉取RTMP

文件_ _android从资源文件中读取文件流并显示的方法

======== 1   android从资源文件中读取文件流并显示的方法. 在android中,假如有的文本文件,比如TXT放在raw下,要直接读取出来,放到屏幕中显示,可以这样: private void doRaw(){ InputStream is = this.getResources().openRawResource(R.raw.ziliao); try{ doRead(is); }catch(IOException e){ e.printStackTrace(); } } pri

readLine读取socket流的时候产生了阻塞

BufferedReader的readLine方法,只要读到流结束或者流关闭,就会返回null 在读取文件的时候,文件结尾就是流的结尾,但对于Socket而言不是的.不能认为流中数据读完了就是流的结尾了.Socket流还在,还是能够继续读写的.所以用Socket的输入流封装的BufferedReader调用readLine方法,是不会返回null的.也就发生阻塞了. 解决方案: 第一种:读取socket流不用BufferedReader,就用InputStream 第二种:客户端发送的时候,末尾

以二进制方式写入文件,并测试读取

以?BinaryFormatter 方式写入,并读取 其中牵涉到"序列化对象",等找到完整数据再补上 原文:大专栏  以二进制方式写入文件,并测试读取 原文地址:https://www.cnblogs.com/chinatrump/p/11458338.html