java中的字节输入流的无参read方法,每次读到的是一个字节,还是一个基本数据的字节值?

问题描述

java中的字节输入流的无参read方法,每次读到的是一个字节,还是一个基本数据的字节值?
FileInputStream 的无参read()方法,每次读到的是一个字节,那他返回给的int变量的是一个字节的int表现形式,还是一个基本数据(如char字符数据)的字节值的int表现形式?如果是返回的一个字节,那这个字节转化成的int值,最多只能取到2的8次方即255个,单个字节是无法表示一个字符的,如果原文件中有汉子,系统又是怎么样把一个字节的数据转换成汉子呢?本人新手,这块不是很理解,求大神解答,谢谢!

解决方案

字节的数据转换成汉子,先以字节读,再以字符转换
InputStreamReader isr = new InputStreamReader(new FileInputStream(file)UTF-8"");

解决方案二:
返回值就是你读取出来的一个字节,也就是说FileInputStream是一个个字节读取的,一般来说,需要在外层进行包装,比如外层再封装一个字符流,这样就可以以字符为单位读取了

解决方案三:
是读的字节,不是字节值,汉字是按字节读,一个汉字2个字节,一般读file文件的时候读行是最快的

时间: 2024-09-12 11:50:42

java中的字节输入流的无参read方法,每次读到的是一个字节,还是一个基本数据的字节值?的相关文章

在java中如何将输入流转换成数组

问题描述 在java中如何将输入流转换成数组 客户端发送数组,服务器端接受并排序.如何将接受的输入流转换成数组 解决方案 http://outofmemory.cn/code-snippet/11389/java-convert-inputstream-to-byte-array 解决方案二: 如何将伪数组转换成数组 解决方案三: apache comments io包中的IOUtils中有现成的方法 解决方案四: 字符串转化成整形数组?字节数组取出来的值就是0-127的数.

Java中数组的创建与传参方法(学习小结)_java

(一)数组的创建 数组的创建包括两部分:数组的申明与分配内存空间. int score[]=null; //申明一维数组 score=new int[3]; //分配长度为3的空间 数组的申明还有另外一种方式: int[] score=null; //把中括号写在数组名前面 通常,在写代码时,为了方便,我们将两行合并为一行: int score[]=new int score[3]; //将数组申明与分配内存写在一行 (二)传递参数 由于初学java,这里只讨论值传递,不考虑地址传递.主要有3点

java中的read(byte【】)方法的问题

问题描述 java中的read(byte[])方法的问题 为什么is=system.in就会成为死循环,而上面用file程序就会停止 解决方案 你用System.in时因为在while要检查输入的内容长度,因此会进入阻塞状态.不能说是死循环,循环的话会输出内容的,这里是阻塞了. 你输入了一次,会输出至少一次,根据你输入的内容长度来定,输出完毕后,会再次进入while判断条件中判断是否有新的输入,也就是说用System.in是没有办法达到一个普通文件那样的输入结尾的,只要你程序开着,他就可以一直输

jquery-html中table的编辑按钮传参调用方法失败的问题

问题描述 html中table的编辑按钮传参调用方法失败的问题 在js中使用如下语句遍历创建表格,最右边带有编辑按钮,然后想传参调用某方法失败 var html6 = '<td><a href="#" rel="rs-dialog" data-toggle="modal" data-target="#myModal" onclick=setValue("'+i+'")">编

java语言-java中即使是不同的包,只要方法是public的,都可以在其他方法的方法体里面调用是吧

问题描述 java中即使是不同的包,只要方法是public的,都可以在其他方法的方法体里面调用是吧 java中即使是不同的包,只要方法是public的,都可以在其他方法的方法体里面调用是吧 解决方案 可以,非静态要初始化,静态的直接通过类名访问

Java中的break和continue关键字的使用方法总结_java

一.作用和区别   break的作用是跳出当前循环块(for.while.do while)或程序块(switch).在循环块中的作用是跳出当前正在循环的循环体.在程序块中的作用是中断和下一个case条件的比较.   continue用于结束循环体中其后语句的执行,并跳回循环程序块的开头执行下一次循环,而不是立刻循环体.  二.其他用途   break和continue可以配合语句标签使用. 这个都很简单,下面给个综合实例,看看就明白 了: /** * Created by IntelliJ I

java中javamail发送带附件的邮件实现方法_java

本文实例讲述了java中javamail发送带附件的邮件实现方法.分享给大家供大家参考.具体分析如下: JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输,JavaMail是可选包,因此如果需要使用的话你需要首先从java官网上下载.目前最新版本是JavaMail1.5.0,下面我们来看看javamail发送带附件的邮件实例 mail.java 代码: 复制代码 代码如下: package mail;

数据库-java中什么类,什么对象,什么方法,什么语句读取sql表文件的数据的

问题描述 java中什么类,什么对象,什么方法,什么语句读取sql表文件的数据的 java中什么类,什么对象,什么方法,什么语句读取sql表文件的数据的 解决方案 Statement或者preparedStatement类对应的实体对象,使用executeUpdate方法执行sql语句的查询操作.executeUpdate方法执行其他sql操作 解决方案二: http://blog.csdn.net/csh624366188/article/details/7305672/ 解决方案三: 这三个

java中double类型运算结果异常的解决方法_java

问题: 对两个double类型的值进行运算,有时会出现结果值异常的问题.比如: System.out.println(19.99+20); System.out.println(1.0-0.66); System.out.println(0.033*100); System.out.println(12.3/100); 输出: 39.989999999999995 0.33999999999999997 3.3000000000000003 0.12300000000000001 解决方法: J