字节流和字符流的读写

        // FileOutputStream 文件字节流输出
	public void FileOutputStreamTest1() throws IOException {
		// 1.使用File找到一个文件
		File file = new File("f:" + File.separator + "cnn.txt");
		// 2.通过子类实例化父类对象
		OutputStream out = null;
		out = new FileOutputStream(file); //
		// 3.进行读写
		String str = "Hello World!";
		byte[] bt = str.getBytes();// 只能輸出字节数组
		out.write(bt);
		// 关闭输出流
		out.close();
	}

	// FileOutputStream 文件字节流输出
	public void FileOutputStreamTest2() throws IOException {
		// 1.使用File找到一个文件
		File file = new File("f:" + File.separator + "cnn.txt");
		// 2.通过子类实例化父类对象
		OutputStream out = null;
		out = new FileOutputStream(file);
		// 3.进行读写
		String str = "Hello World!";
		byte[] bt = str.getBytes();// 只能輸出字节数组
		for (int i = 0; i < bt.length; i++) {
			out.write(bt[i]);
		}
		// 关闭输出流
		out.close();
	}

	//FileInputStream  文件字节输入流
	public void FileInputStreamDemo1() throws IOException {
		// 1使用File类找到文件
		File f = new File("f:" + File.separator + "cnn.txt");
		// 2.通过子类实例化父类对象
		InputStream in = null;// 准备好一个输入的对象
		in = new FileInputStream(f);
		// 3.进行读写
		byte[] bt = new byte[1024];
		int len = 0;
		int temp = 0;
		while ((temp = in.read()) != -1) {
			bt[len] = (byte) temp;
			len++;
		}
		// 4.关闭输入流
		in.close();
	}

	// 字节流转化为字符流
	public void OutputStreamWriterDemo1() throws IOException {
		File f = new File("f:" + File.separator + "cnn.txt");
		Writer out = null;
		out = new OutputStreamWriter(new FileOutputStream(f));
		out.write("Hello World");
		out.close();
	}

	public void InputStreamReaderDemo1() throws IOException {
		File f = new File("f:" + File.separator + "cnn.txt");
		Reader in = null;
		in = new InputStreamReader(new FileInputStream(f));
		char[] c = new char[1024];
		int len = in.read(c);// 读取
		in.close(); // 关闭
	}

	// 内存流读写
	public void ByteArraryDemo() throws IOException {
		String str = "HELLOWORLD!";

		ByteArrayInputStream bis = null;// 內存輸入流
		ByteArrayOutputStream bos = null;// 內存輸出流

		bis = new ByteArrayInputStream(str.getBytes()); // 向内存中输入内容
		bos = new ByteArrayOutputStream(); // 准备从ByteArrayInputStream读取内容

		int temp = 0;
		while ((temp = bis.read()) != -1) {
			char c = (char) temp; // 读取数字变成字符
			bos.write(Character.toLowerCase(c)); // 轉換小寫
		}

		bis.close();
		bos.close();

		String newStr = bos.toString();
		System.out.println(newStr);
	}

	// BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取
	public void BufferedReaderDemo() throws IOException {
		BufferedReader bf = null; // 声明BufferedReader对象
		// 1.System.in 字節輸入流
		// 2.new InputStreamReader(System.in) 将字节输入流,转换为字符输入流
		// 3.new BufferedReader(new InputStreamReader(System.in)) 将字符流缓冲到缓冲区
		bf = new BufferedReader(new InputStreamReader(System.in));
		String str = null;
		System.out.println("请输入内容:");
		str = bf.readLine();
		System.out.println("輸入的內容是:" + str);
	}
  1. FileOutputStream : out(byte[])和out(int)方法。
时间: 2024-10-28 05:47:07

字节流和字符流的读写的相关文章

JAVA 字节流和字符流度读写的区别

java处理文件的类里面,stream结尾都是采用字节流,reader和writer结尾都是采用字符流.两者的区别就是读写的时候一个是按字节读写,一个是按字符. 字符流的底层就是字节流.而字符流主要是读取文本文件内容的,可以一个字符一个字符的读取,也可以一行一行的读取文本文件内容.而字节流读取单位为byte.byte作为计算机存储最基本单位,可以用字节流来读取很多其他格式的文件,比如图片视频等等.基于B/S和C/S的文件传输都可以采用字节流的形式.在读写文件需要对内容按行处理,比如比较特定字符,

Java IO-file(读写查)字节流、字符流

使用字节流操作汉字或特殊的符号语言的时候,容易乱码,建议使用字符流. 先有字节流,后有字符流,字符流是对字节流的补充. 使用记事本打开某个文件,可以看到内容的就是文本文件,否则可以理解二进制. 一般的,操作二进制文件(图片,音频,视频等)必须使用字节流. 一般的,操作文本文件使用字符流. 如果不清楚是哪一类型文件,使用字节流. -----------------------------------------字节流-----------------------------------------

JAVA IO 字节流与字符流

文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节.       IO框架 从上图我们可以看出IO可以分为两大块 字节流和字符流 字节流是 InputStream 和 OutputStream 分别对应输入与输出 字符流是Reader和Writer分别对应输入与输出        ByteArrayInputStream  它字节数组输入流.继承于InputS

Java核心知识点-字节流和字符流详解

字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 区别:实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示. 下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流. 范例:使用字节流不关闭执行 Java代码   package org.lxh.demo12.byteiodemo; import java.io.File; import 

【Java IO流】字节流和字符流详解

字节流和字符流 对于文件必然有读和写的操作,读和写就对应了输入和输出流,流又分成字节和字符流. 1.从对文件的操作来讲,有读和写的操作——也就是输入和输出. 2.从流的流向来讲,有输入和输出之分. 3.从流的内容来讲,有字节和字符之分. 这篇文章先后讲解IO流中的字节流和字符流的输入和输出操作. 一.字节流 1)输入和输出流 首先,字节流要进行读和写,也就是输入和输出,所以它有两个抽象的父类InputStream.OutputStream. InputStream抽象了应用程序读取数据的方式,即

疯狂Java学习笔记(55)----------字节流与字符流

字节流与字符流 在java.io包中操作文件内容的主要有两大类:字节流.字符流,两类都分为输入和输出操作.在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成.(这四个都是抽象类) 处理流的用法: 按照流是否直接与特定的地方(如磁盘.内存.设备等)相连,分为节点流和处理流两类.  节点流:可以从或向一个特定的地方(节点)读写数据.如FileReader 处理流:是对一个已存在的流的

java的IO学习,字节流与字符流的编码讲解

字节流与字符流 字节流可以处理所有类型的数据(图片.视频等),在java中对应的类都为“stream”结尾 1字节=8位二进制=具体存储空间 字符流仅能处理纯文本的数据,在java中对应的类都是以“reader”或者“writer”结尾 如汉字,符号等 import org.junit.Test; public class IOTest { /** * BufferedInputStream BufferedOutputStream * 利用字节缓冲流实现文件的复制 * @throws IOEx

java.io 字节流与字符流及简单实例

java io是java中非常基础的知识点,对于通信和不涉及到数据库的项目java io应该是要经常使用.java io分为字节流和字符流,分清字节流和字符流的异同是掌握java io的起点. 字节流,最小单位是字节,通信协议中的X-MODEM和Y-MODEM协议传输单位就是字节流.java io中与字节流相关的主要类有:InputStream,OutputStream,FileInputStream,FileOutputStream.与字符流有关的主要类有:Writer,Reader,File

Java基础:IO流之字节流和字符流

1. 流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部文件等. 一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL. 流的方向是重要的,根据流的方向,流可分为两类:输入流和输出流.用户可以从输入流中读取信息,但不能写它.相反,对输出流,只能往输入流写,而不能读它. 实际上,流的源端和目的端可简单地看成是字节的生产者和消费