PushBackInputStream回退流

【例子1】


import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.PushbackInputStream;  

/**
 * 回退流操作
 */  

public class PushBackInputStreamDemo{

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

        String str = "hello,rollenholt";

        PushbackInputStream push = null;

        ByteArrayInputStream bat = null;

        bat = new ByteArrayInputStream(str.getBytes());

        push = new PushbackInputStream(bat);

        int temp = 0;

        while((temp = push.read()) != -1){

            if(temp == ‘,’){

                push.unread(temp);

                temp = push.read();

                System.out.print("(回退" + (char) temp + ") ");

            }else{

                System.out.print((char) temp);

            }

        }

    }

}

【运行结果】:

hello(回退,) rollenholt

【例子2】


/**
 * 取得本地的默认编码
 */  

public class CharSetDemo{

    public static void main(String[] args){

        System.out.println("系统默认编码为:" + System.getProperty("file.encoding"));

    }

}

【运行结果】:

系统默认编码为:GBK

【例子3】乱码的产生:


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;   

/**
 * 乱码的产生
 */   

public class CharSetDemo2{

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

        File file = new File("d:" + File.separator + "hello.txt");

        OutputStream out = new FileOutputStream(file);

        byte[] bytes = "你好".getBytes("ISO8859-1");

        out.write(bytes);

        out.close();

    }

}

【运行结果】:

??

一般情况下产生乱码,都是由于编码不一致的问题。

原文地址:https://www.cnblogs.com/yuyu666/p/9733916.html

时间: 2024-08-03 14:02:15

PushBackInputStream回退流的相关文章

Java基础系列10:内存操作流,管道流,合并流,压缩流以及回退流

前言:这篇文章将对几个"非主流"的IO流进行简单的介绍 一 内存操作流 内存操作流的主要作用是完成内存的输入和输出.比如说在某些情况下需要生成一些临时信息,而将这些临时信息保存在文件中不仅要进行文件的读写而且在功能完成之后还需要删除这个临时文件,因此比较麻烦,这时或许就需要用到内存操作流了. 需要用到的API是:ByteArrayInputStream和ByteArrayOutputStream,分别表示输入流和输出流,示例代码如下: package javase.io; import

回退流 Demo2

package pushbackInputStream; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.PushbackInputStream; /* * 自己再写一次 */ public class PushbackInputStreamDemo2 { public static void main(String[] args

回退流 Demo 1

package pushbackInputStream; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.PushbackInputStream; /* * 回退输入流 :类 PushbackInputStream * * 构造方法: * PushbackInputStream(InputStream in) 创建 PushbackInputStream 并保存其参数(即输入流 in)

Java IO流详解

初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见. 首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想java设计者真是煞费苦心啊!) 这是java io 比较基本的一些处理流,除此之外我们还会提到一些比较深入的基于io的处理类,比如console类,SteamTokenzier,Externalizable接口,Serializa

关于JAVA IO流的学习

初学Java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见. 首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想java设计者真是煞费苦心啊!) 这是java io 比较基本的一些处理流,除此之外我们还会提到一些比较深入的基于io的处理类,比如console类,SteamTokenzier,Externalizable接口,Serializa

Java IO流详尽解析(转自 http://www.2cto.com/kf/201312/262036.html)

流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本质其实就是基于字节流读取时,去查了指定的码表.字节流和字符流的区别

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

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

io流操作大全

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

java的io流(又一大神之作)

初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见. 首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想java设计者真是煞费苦心啊!) 这是java io 比较基本的一些处理流,除此之外我们还会提到一些比较深入的基于io的处理类,比如console类,SteamTokenzier,Externalizable接口,Serializa