Java——IO类,字符流读数据

body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;} th{border: 1px solid gray; padding: 4px; background-color: #DDD;} td{border: 1px solid gray; padding: 4px;} tr:nth-child(2n){background-color: #f8f8f8;}

InputStreamReader读数据


█ InputStreamReader读数据方法

?public int read();              //读取单个字符。

?public int read(char[] cbuf);             //将字符读入数组。

?public int read(char[] cbuf,int off ,int len);            //将字符读入数组中的某一部分。

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

FileInputStream fis = new FileInputStream("1.txt");

InputStreamReader isr = new InputStreamReader(fis);   //没有写明编码格式,默认系统编码(utf-8);

  //方法一:

/*      int ch;

// while ((ch = (char) isr.read()) != -1) { //这里不能在这里强行转换成 char ,转换成 char 就永远不会等于 -1

while ((ch = isr.read()) != -1) {

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

} */

  //方法二:

/*     char[] charray = new char[10];

int leng = isr.read(charray);

System.out.println(charray);*/


//方法三:

/*     char[] charray2 = new char[10];

int leng2 = isr.read(charray2, 0,charray2.length);

System.out.println(charray2);*/

char[] charray2 = new char[10];

int leng;

while(  ( leng = isr.read(charray2,0,charray2.length )  ) != -1 ){

//System.out.print(charray2);      //这里不能直接输出数组,因为不能最后一才读进数组长度个数据,会导致输出的部分是上次读到数组里的

String charray2Str = new String(charray2,0,leng);

System.out.print(charray2Str);

}

fis.close();

isr.close();

}

}

原文地址:https://www.cnblogs.com/meihao1203/p/9181971.html

时间: 2024-11-05 18:58:23

Java——IO类,字符流读数据的相关文章

Java——IO类,字节流读数据

body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;} th{border: 1px solid gray; padding: 4px; background-color: #DDD;} td{border: 1px solid gray; padding: 4px;} tr:nth-child(2n){background-co

[学习笔记]Java IO之字符流

概述 字符流是专门用于处理文本文件的流,其中包括了文本编码相关转换工作. 字符流只可以处理文本字符数据. 每个字符流都包括一种编码方式,可以使用系统默认,也可以自行设定. 编码 1. 编码表 生活中语言文字和计算机中对应的数据表 2. 常见编码表 ASCII:包括字母和常见符号,1字节编码,首位为0. ISO8859-1:包括拉丁字母,1字节编码,首位为1. GB2312:简体中文码表,包括6~7千汉子及符号,2字节编码,2个字节首位均为1. GBK:中文码表,包括GB2312全部编码,约2万个

Java IO之字符流

1.         字符流 在程序中一个字符等于两个字节,Java为我们提供了Reader和Writer两个专门操作字符流的类 1)        字符输出流:Writer Writer是一个字符流,它是一个抽象类,所以要使用它,也必须通过其子类来实例化它后才能使用它. Writer类的常用方法 方法名称 描述 public abstract void close() throws IOException 关闭输出流 public void write(String str) throws I

Java IO(四--字符流基本使用

在上一节,介绍了字节流的基本使用,本节介绍一下字符流的使用 Reader: public abstract class Reader implements Readable, Closeable { protected Object lock; private static final int maxSkipBufferSize = 8192; private char[] skipBuffer = null; protected Reader() { this.lock = this; } p

JAVA之IO技术-字符流对象Writer的子类对象FileWriter的使用

  package ioTest.io1; import java.io.File; import java.io.FileWriter; /* * IO技术,按照操作数据的方式分类如下: * 字节流和字符流 * 字节流的两个基类: * InputStream,OutputStream * 字节流的两个基类: * Reader,Writer * 思考一个问题:为什么有了字节流还要出现字符流? * * 先学习字符流的特点. * * 既然IO是操作数据的,那么数据最常见的体现形式 文件 * 需求:

java 字节流和字符流转换类InputStreamReader,OutPutStreamReader

import java.io.*; public class BufferDemo { public static void main(String[] args) throws IOException { BufferedReader buf=null; buf=new BufferedReader(new InputStreamReader(System.in)); System.out.print("Please enter a number:"); String str=buf

Java IO结构各种流详解

花了两天时间研究了一下Java IO的流,对于各种流,加深了一下理解 首先看我做的思维导图 文件流 public class FileIO { public static void main(String[] args) throws Exception { File file1 = new File(System.getProperty("user.dir") + "/c.txt"); // 找到第一个文件的File // 找到目标文件路径 File file2

java 字节流和字符流

二者仅仅是操作单位不一样. InputStream和Reader是所有输入流的基类,他们都是抽象类,本身不能创建实例,但是他们是所有输入流的模板. 一般来说处理字符或字符串时使用字符流,处理字节或二进制对象时应使用字节流: 备注:字符流必须关闭资源,因为它中间有缓冲区!而字节流不需要!但是一般都会(最后)关闭资源! 字节流 字节流主要是操作byte(字节)的类型数据: 字节输出流:OutputStream 字节输入流:InputStream 字符流 Java中的字符是Unicode编码,是双字节

Java基础教程——字符流

字符流 字节流服务文本文件时,可能出现中文乱码.因为一个中文字符可能占用多个字节. 针对于非英语系的国家和地区,提供了一套方便读写方式--字符流. java.io.Reader java.io.Writer 文件字符流 |-读文件:FileReader java.io.FileReader fr = new FileReader("待读取的文件");// 构造时使用默认的字符编码 int 读取单个字符 = fr.read(); char[] cbuf = new char[1024];