字节流

1. InputStream 字节输入流

代码演示

     InputStream in = System.in;

     System.out.println("int read(byte b) 方法演示");
//int read()
int bt = 0;
while((bt=in.read())>0){
System.out.print(bt+" ");
if(bt == 10){ //回车\r(13) 换行\n(10)
break;
}
}
System.out.println("\n\rint read(byte[] buffer) 方法演示"); //int read(byte[] buffer)
int length = 0;
byte[] buffer = new byte[10];
while((length=in.read(buffer)) != 0){
for(int i=0; i<length; i++){
System.out.print(buffer[i]+" ");
}
break;
} System.out.println("\n\rint read(byte[] buffer, int offset, int len) 方法演示"); //int read(byte[] buffer, int offset, int len)
int len = 1024;
int count = 0;
byte[] buf = new byte[len];
while((count=in.read(buf, 0, len))>0){
for(int i=0; i<count; i++){
System.out.print(buf[i]+" ");
}
break;
}
in.close();

2. OutputStream 字节输出流

代码演示

     OutputStream out = System.out;
//void write(int b)
out.write(65); //字符A out.write(13); //回车 \r
out.write(10); //换行 \n //flush()
out.flush(); //write(byte[] bytes)
byte[] bytes = new String("张晓明").getBytes();
out.write(bytes); out.write(13); //回车 \r
out.write(10); //换行 \n //write(byte[] bytes, int offset, int length)
bytes = new String("zhangxiaoming").getBytes();
out.write(bytes, 5, 8); out.close();

字符流

1. Reader 字符输入流

代码演示

     Reader reader = new InputStreamReader(System.in);

     //int read()
System.out.println("int read() 方法演示");
int c;
while((c=reader.read()) != 13){
System.out.print((char)c);
}
reader.read(); //int read(char[] buf)
System.out.println("\n\rint read(char[] buf) 方法演示");
int count = 0;
char[] buf = new char[1024];
while((count=reader.read(buf)) > 0){
String str = new String(buf, 0, count);
if(str.indexOf("stop")>=0) break;
System.out.print(str);
} //int read(char[] buffer, int offset, int len)
System.out.println("\n\rint read(char[] buffer, int offset, int len) 方法演示");
int length = 1024;
char[] buffer = new char[length];
while((count=reader.read(buffer, 0, length)) > 0){
String str = new String(buffer, 0, count);
if(str.indexOf("stop")>=0) break;
System.out.print(str);
}

2. Writer 字符输出流

代码演示

     Writer writer = new OutputStreamWriter(System.out);
String str = "中国"; //write(String str) 写入字符串
writer.write(str); //write(int c) 写入单个字符
writer.write(10); //换行符 //write(String str, int offset, int length) 写入部分字符串
writer.write(str, 0, 1); writer.write(10); //write(char[] buf) 写入字符数组
char[] chars = str.toCharArray();
writer.write(chars); writer.write(10); //write(char[] buf, int offset, int length) 写入部分字符数组
writer.write(chars, 0, 1);
writer.write(10); writer.flush(); //append(char c) 追加字符
writer.append('z');
writer.write(10); String str2 = "中华人民共和国";
//append(CharSequence csq)
writer.append(str2);
writer.write(10); //append(CharSequence csq, int offset, int length)
writer.append(str2, 0, 4); writer.close();

【Java基础总结】IO流的更多相关文章

  1. java基础之IO流(二)之字符流

    java基础之IO流(二)之字符流 字符流,顾名思义,它是以字符为数据处理单元的流对象,那么字符流和字节流之间的关系又是如何呢? 字符流可以理解为是字节流+字符编码集额一种封装与抽象,专门设计用来读写 ...

  2. java基础之IO流(一)字节流

    java基础之IO流(一)之字节流 IO流体系太大,涉及到的各种流对象,我觉得很有必要总结一下. 那什么是IO流,IO代表Input.Output,而流就是原始数据源与目标媒介的数据传输的一种抽象.典 ...

  3. Java基础之IO流整理

    Java基础之IO流 Java IO流使用装饰器设计模式,因此如果不能理清其中的关系的话很容易把各种流搞混,此文将简单的几个流进行梳理,后序遇见新的流会继续更新(本文下方还附有xmind文件链接) 抽 ...

  4. 【java基础】]IO流

    IO流 概念: 流的概念源于unix中管道(pipe)的概念,在unix中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备,外部文件等 一个流,一定能够会有源和去向(目的地),他 ...

  5. java基础之 IO流

    javaIO流   IO流 : (input  output) 输入输出流 :输入 :将文件读到内存中 输出:将文件从内存输出到其他地方.   IO技术的作用:主要就是解决设备和设备之间的数据传输问题 ...

  6. java基础44 IO流技术(输出字节流/缓冲输出字节流)和异常处理

    一.输出字节流 输出字节流的体系: -------| OutputStream:所有输出字节流的基类(抽象类) ----------| FileOutputStream:向文件输出数据的输出字节流(把 ...

  7. java基础之io流总结一:io流概述

    IO流概念: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.io流是实现输入和输出的基础,可以方便的实现数据的输入和输出操作. IO流的分类: 根据处理数据类型的不同分为:字符流 ...

  8. 黑马程序员——JAVA基础之IO流FileReader,FileWriter

    ------- android培训.java培训.期待与您交流! ---------- IO(Input Output)流  IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 J ...

  9. java基础06 IO流

    IO用于在设备间进行数据传输的操作. Java IO流类图结构:   IO流分类 字节流: InputStream FileInputStream BufferedInputStream Output ...

  10. java基础之IO流及递归理解

    一.IO流(简单理解是input/output流,数据流内存到磁盘或者从磁盘到内存等) 二.File类(就是操作文件和文件夹的) 1.FIleFile类构造方法 注意:通过构造方法创建的file对象是 ...

随机推荐

  1. Python--day69--单表查询之神奇的双下划线

    单表查询之神奇的双下划线: 单表查询之神奇的双下划线 models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值 models. ...

  2. H3C 帧中继地址映射

  3. Codeforces Round #177 (Div. 1 + Div. 2)

    A. Polo the Penguin and Segments 模拟. B. Polo the Penguin and Matrix 每个数字模d余数必须一样. 枚举结果,可计算操作次数,取最小. ...

  4. linux初始化和关停

    如已提到的, 模块初始化函数注册模块提供的任何功能. 这些功能, 我们指的是新功能, 可以由应用程序存取的或者一整个驱动或者一个新软件抽象. 实际的初始化函数定义常常 如: static int   ...

  5. node第一个参数必须是err

    Node.js 约定回调函数第一个参数必须是错误对象err: 问题:Node.js约定回调函数第一个参数必须是错误对象err,如果没有错误该参数就是null 原因:异步执行分成两段,在两段之间抛出异常 ...

  6. Linux 内核总线属性

    几乎 Linux 驱动模型中的每一层都提供一个添加属性的接口, 并且总线层不例外. bus_attribute 类型定义在 <linux/device.h> 如下: struct bus_ ...

  7. vue 父组件中调用子组件函数

    2019/06/06 在父组件中调用子组件的方法:  1.给子组件定义一个ref属性.eg:ref="childItem"  2.在子组件的methods中声明一个函数.eg: u ...

  8. [HNOI2019]白兔之舞

    memset0 多合一无聊题 mod k=t,并且k是p-1的约数 单位根反演石锤了. 所以直接设f[i]表示走i步的方案数, 然后C(L,i)分配位置,再A^i进行矩乘得到f[i] 变成生成函数F( ...

  9. 轮播图模块(vue)

    轮播图模块(vue) 通过属性方式传值 值为一个数组.每一项含有imgUrl(图片地址).link(跳转链接),link为可选属性 <template> <div class=&qu ...

  10. 洛谷——P1111修复公路(并查集)

    题目背景 AA地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数NN,和公路数MM,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你 ...