美文网首页
字节流和字符流的区别

字节流和字符流的区别

作者: 流泪回忆不如忍痛努力 | 来源:发表于2018-01-13 15:36 被阅读0次

      以stream结尾都是字节流,以reader和writer结尾都是字符流,两者的区别就是读写的时候一个是按字节读写,一个是按字符。在实际使用时差不多。

      在读写文件需要对内容按行处理,比如比较特定字符,处理某一行数据的时候一般会选择字符流。只是读写文件,和文件内容无关的,一般选择字节流。

package input;

import java.io.ByteArrayInputStream;

import java.io.IOException;

// 输入字节流InputStream的实现

// 字节数组作为输入源——ByteArrayInputStream

//

// 该类包括两个构造方法

//

// ByteArrayInputStream(byte[] buf);

// ByteArrayInputStream(byte[] buf,int offset,int length );

// 该类重写了InputStream中的所有方法,因此我们可以调用其父类同名的方法进行读写操作。

//

// 下面是如何通过一个字节数组创建字节输入流的过程,并从输入流中读取数据输出到操作台。

public class TestByteArrayInputStream1 {

    public static void main(String[] args) throws IOException {

        // 初始化字节数组

        byte[] buf = new byte[3];

        buf[0] = 100;

        buf[1] = 101;

        buf[2] = 102;

        // 创建输入流

        ByteArrayInputStream input = new ByteArrayInputStream(buf);

        // 从输入流中读取数据

        byte[] out = new byte[3];

        input.read(out);

        System.out.println(new String(out));

        // 关闭输入流

        input.close();

//         只能读取指定的字节数,不能读取的数据过多,有可能会超过内存的限制

    }

}

package com.qfedu.c_reader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

/*

  IO input Output

  字节流:

  InputStream

  FileInputStream

  OutputStream

  FileOutputStream

  字符流:

  字符流 = 字节流  + 解码

  字符流读取数据,输入字符流

  ---| Reader 输入字符流的基类/超类  抽象类

  ------| FileReader 读取文件的输入字符流

使用方式:

1. 找到文件

判断文件是否存在,是否是一个普通文件

2. 建立FileReader读取通道

3. 读取数据

4. 关闭资源

*/

public class Demo1 {

public static void main(String[] args) throws IOException {

//readerTest2(); 

}

public static void readerTest2() throws IOException {

long start = System.currentTimeMillis();

// 1. 找到文件:

File file = new File("");

// 判断文件是否存在,是否是一个普通文件

if (!file.exists() || !file.isFile()) {

throw new FileNotFoundException();

}

// 2. 建立FileReder 输入字符流管道

FileReader fr = new FileReader(file);

//3.建立缓冲区,利用缓冲区读取数据, 创建字符数组作为缓冲区

int length = -1; //用于保存读取到的字符个数

char[] buffer = new char[1024];

while ((length = fr.read(buffer)) != -1) {

System.out.println(new String(buffer, 0, length));

}

//4. 关闭资源

fr.close();

long end = System.currentTimeMillis();

System.out.println("耗时:" + (end - start));

}

}

相关文章

  • Java 中字节流与字符流的区别?

    Java 中字节流与字符流的区别? 知乎高赞回答。参考:Java 中字节流与字符流的区别?[https://www...

  • 关于IO流操作的几种方式

    字节流和字符流的区别:读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能...

  • NO.31 文件数据IO操作

    字符流: 字符流与字节流的区别在于读写单位为字符,但是字符流底层本质还是读写字节,只是字符与字节的转换工作交给了字...

  • 输入输出--Java IO流

    1. IO流分类 节点流:又叫低级流 处理流:高级流 字节流和字符流的区别在于数据处理单位的不同。 字节流:一次读...

  • Java中有几种类型的流?

    字节流和字符流。字节流继承于InputStream、OutputStream,字符流继承于Reader、Write...

  • I/O流之文件流

    文件流可以分为字节流和字符流字节流字节流可以对任何文件进行操作 ,但效率不如字符流高字节流分为字节输入流和字节输...

  • 字节流和字符流的区别

    以stream结尾都是字节流,以reader和writer结尾都是字符流,两者的区别就是读写的时候一个是按字...

  • Java 基础 IO流

    文章转载自http://wentao365.iteye.com/blog/1374731 字节流和字符流区别? 方...

  • Java/C++ IO 实例详解

    1 Java 字节流(byte),字符流(char,string)区别? 什么是流:IO操作就是流。比如,标准输入...

  • IO流 2018-05-07

    字节流和字符流: 1字节流(均为抽象类):在字节流中定义了方法read(),用于从字节流中读取对象: public...

网友评论

      本文标题:字节流和字符流的区别

      本文链接:https://www.haomeiwen.com/subject/qtoaixtx.html