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;}
| public class IOTest2 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("1.txt");
//int read = fis.read(); //文件里是 d,当时write(100),写进文件是 d 读出来又变为 100
//read 只读最后一个字节
/*System.out.println("read(): "+read); //read(): 100
char ch = (char)read;
System.out.println("转化:"+ch); //转化:d */
byte[] bs = new byte[10];
int readLength = fis.read(bs); //返回读到的实际字节长度;read每次读完一个字节会自动偏移到下一个
String string = new String(bs); //这里构造string,前面开辟多少空间,就算数组里只有部分有数据,转换的时候还是会按定义长度转换,没数据的当空格;
//如果前面的是10 ,后面生成的string就会比是6的时候多一些空白,更长一点
System.out.println("readTobs: "+string+" readLength: "+readLength); //readTobs: 201703 readLength: 6 //数组长度为6
//readTobs: 201703 readLength: 6 //数组长度为10
String string1 = new String(bs,0,readLength); //消除上面存在的多余空格
System.out.println("readTobs: "+string1+" readLength: "+readLength);
|
int length = fis.read(bs,0,10); //参数一表示往哪个数组读,参数二表示从数组的那个位置写,第三个参数表示数组长度
String string2 = new String(bs,0,length); //构建字符串的时候指定从数组哪里开始构建,构建多长;
System.out.println("readTobs: "+string2+" readLength: "+length);
fis.close(); //释放资源
}
}
|
|
public class IOTest3 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("DiguiTest.java");
/* int read = 0;
while((read = fis.read()) != -1){ //read 读到文件尾会返回 -1
char ch = (char)read;
System.out.print(ch);
}*/
|
//一次读取一个字节数组
//使用字节流不能处理文本中的中文,会出现乱码;但是构建成String就不会出现乱码
byte[] bytes = new byte[100];
int length = 0;
while((length = fis.read(bytes)) != -1){
String string = new String(bytes,0,length);
System.out.print(string);
}
fis.close();
}
}
|
Java——IO类,字节流读数据的更多相关文章
- Java——IO类 字节流概述
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- Java IO: 其他字节流(上)
作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的PushbackInputStream,SequenceInputS ...
- Java IO 类一览表
下表列出了大多数(非全部)按输/输出,基于字节或字符划分的 Java IO 类.
- Java——IO类,字节流写数据
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- Java——IO类,字节流缓冲区
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- [Java IO]02_字节流
概要 字节流有两个核心抽象类:InputStream 和 OutputStream.所有的字节流类都继承自这两个抽象类. InputStream 负责输入,OutputStream 负责输出. 字节流 ...
- Java IO之字节流
Java中的输入是指从数据源等读到Java程序中,这里的数据源可以是文件,内存或网络连接,输出则是指从Java程序中写到目的地. 输入输出流可以分为以下几种类型(暂时不考虑File类) 类名 中文名 ...
- Java IO流-字节流
2017-11-05 17:48:17 Java中的IO流按数据类型分类分为两种,一是字节流,二是字符流.字符流的出现是为了简化文本数据的读入和写出操作. 如果操作的文件是文本文件,那么使用字符流会大 ...
- Java—IO流 字节流
IO流(输入流.输出流),又分为字节流.字符流. 流是磁盘或其它外围设备中存储的数据的源点或终点. 输入流:程序从输入流读取数据源.数据源包括外界(键盘.文件.网络…),即是将数据源读入到程序的通信通 ...
随机推荐
- 如何设置datatable的宽度
本文为博主原创,未经允许不得转载: datatable插件具有很好的自动适应性,在大多数情况下可以自适应,完美的展示列表内容. 实现其自适应的其特性为:"bAutoWidth": ...
- 转:java项目经验面试总结
转载: 在前期已经讲过怎样分析自己,对自己进行一个准确的定位,选择一个合适的求职方向!并结合自己的实际个人情况来写一份针对性很强的个人简历!个人简历就是个人的广告!好的简历可以更受到用人需求单位青睐! ...
- 列举一些有所帮助的blog和文章
w3school hdoj imooc CSDN Github myGithub CmdMarkdown 一直在路上--记我从初中到本科近十年的学习成长历程 作者:周见智 C++中队列的建立与操作详细 ...
- 强大的Manage
Queue和Pipe实现的数据共享方式只支持两种结构 Value 和 Array.Python中提供了强大的Manage专门用来做数据共享,其支持的类型非常多,包括: Value,Array,list ...
- dos与unix系统的格式转化
unix 只用\n作为行结束符,而在 dos中是以\r和\n作为行结束符, 如果一个文件是在unix系统下创建,然后想在dos下使用,就要用unix2dos,如 unix2dos file 如果一个文 ...
- pandas (loc、iloc、ix)的区别
loc:通过行标签索引数据 iloc:通过行号索引行数据 ix:通过行标签或行号索引数据(基于loc和iloc的混合) 使用loc.iloc.ix索引第一行数据: loc: iloc: ix:
- Spark与Flink大数据处理引擎对比分析!
大数据技术正飞速地发展着,催生出一代又一代快速便捷的大数据处理引擎,无论是Hadoop.Storm,还是后来的Spark.Flink.然而,毕竟没有哪一个框架可以完全支持所有的应用场景,也就说明不可能 ...
- 从996到ICU——我们终将被自我厌恶
自从996.icu在github上收获了18万点赞以来,超时工作,超负荷劳动似乎成了天下所有“无产阶级者”的共同点.对于这样的剥削制度,我想再多的批评和抨击都不为过.但是今天我想说3个小故事,只为引起 ...
- Codeforces 837D - Round Subset(dp)
837D - Round Subset 思路:dp.0是由2*5产生的. ①dp[i][j]表示选i个数,因子2的个数为j时因子5的个数. 状态转移方程:dp[i][j]=max(dp[i][j],d ...
- 动态规划3--Help Jimmy
动态规划3--Help Jimmy 一.心得 二.题目 三.分析 Jimmy跳到一块板上后,可以有两种选择,向左走,或向右走.走到左端和走到右端所需的时间,是很容易算的.如果我们能知道,以左端为起点到 ...