1. package com.io.file;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileNotFoundException;
  6. import java.io.IOException;
  7. import java.io.InputStream;
  8.  
  9. //InputStream
  10. //(1)从流中读取数据
  11. // int read() 读取一个字节,返回值为所读得字节
  12. // int read(byte b[]) 读取多个字节,放置到字节数组b中,通常读取的字节数量为b的长度,返回值为实际独取的
  13. // 字节的数量。
  14. // int read(byte b[] ,int off,int len)读取len个字节,放置到以下标off开始字节数组b中,返回值为实际
  15. // 读取的字节的数量。
  16. // int available() 返回值为流中尚未读取的字节的数量。
  17. // long skip(long n);读指针跳过n个字节不读,返回值为实际跳过的字节数量
  18. //(2)关闭流
  19. // close() 流操作完毕后必须关闭
  20. //(3)使用输入流中的标记
  21. // void mark(int readlimit)纪录当前指针的所在位置.readlimit表示读指针读出的readlimit个字节后
  22. // 所标记的指针位置才实效。
  23. // void reset() 把读指针重新指向用mark方法所记录的位置
  24. // boolean markSupported() 当前的流是否支持读指针的记录功能。
  25.  
  26. public class TestInputStream {
  27.  
  28. public static void main(String[] args) throws IOException {
  29. File f = new File("E:" + File.separator + "单选题gbk.txt");
  30. InputStream fis = new FileInputStream(f);
  31. System.out.println("未读之前的字节长度为 " + fis.available());
  32.  
  33. System.out.println("read()是读取一个字节,但是中文占两个字节,所以显示乱码,建议使用数组: "
  34. + (char) fis.read());
  35. fis.read();
  36. // System.out.println((char)(fis.read()+fis.read()));//乱码
  37. // System.out.println(new String(new byte[]{(byte) fis.read(),(byte)
  38. // fis.read()},0,2));//乱码
  39.  
  40. // byte[] b=new byte[1024];
  41. byte[] b = new byte[324];
  42. int read = fis.read(b);
  43.  
  44. System.out.println("实际读取字节的数量为 " + read);
  45. System.out.println("尚未读取的字节的数量为 " + fis.available());
  46.  
  47. System.out.println(new String(b, 0, read));
  48.  
  49. }
  50.  
  51. }

  

3、InputStream的更多相关文章

  1. String 、InputStream、Reader 的转换

    1.String –> InputStream InputStrem is = new ByteArrayInputStream(str.getBytes());orByteArrayInput ...

  2. 【设计模式】适配器模式与Reader、InputStream之间的适配

    简述 适配器模式,目的是将A对象通过适配.转换的方式转换成B对象来使用,为什么转换为B对象?因为用户通过依赖B对象来使用. 适配器的实现有两种方式. 继承实现 组合实现 基于Java单继承的机制,组合 ...

  3. Java BufferedReader、InputStream简介

    InputStream  数据流类 一般来说,就是将字符串.管道数据(socket通倒).文件.字节等转换为输入流,以流的方式去读取: 但是inputstream的读取速率较低,为了提高读取速率,一般 ...

  4. java 中 byte[]、File、InputStream 互相转换

    1.将File.FileInputStream 转换为byte数组: File file = new File("test.txt"); InputStream input = n ...

  5. 【java】java 中 byte[]、File、InputStream 互相转换

    ========================================================================= 使用过程中,一定要注意close()掉各个读写流!! ...

  6. 字节流与字符流简单操作(OutputStream、InputStream、Writer、Reader)

    操作流程 使用File类打开一个文件 通过字节流或者字符流的子类.指定输出的位置. 进行读/写操作 关闭输入/出 字节流与字符流 在java.io包中操作文件内容主要有两大类:字节流字符流.两大类分为 ...

  7. Java精选笔记_IO流(字节流、InputStream、OutputStream、字节文件、缓冲区输入输出流)

    字节流 操作图片数据就要用到字节流. 字符流使用的是字符数组char[],字节流使用的是字节数组byte[]. 字节流读写文件 针对文件的读写,JDK专门提供了两个类,分别是FileInputStre ...

  8. InputStream、OutputStream、String的相互转换(转)

    //1.字符串转inputStream String string; //...... InputStream is = new ByteArrayInputStream(string.getByte ...

  9. inputStream、File、Byte、String等等之间的相互转换

    一:inputStream转换 1.inputStream转为byte //方法一 org.apache.commons.io.IOUtils包下的实现(建议) IOUtils.toByteArray ...

随机推荐

  1. POJ 1679 The Unique MST 推断最小生成树是否唯一

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22715   Accepted: 8055 D ...

  2. oracle授权、表备份、用户管理

    用户管理 创建用户: create user 用户名 identified by 密码; 修改用户密码: alter user 用户名 identified by 密码; 激活用户: alter us ...

  3. C语言 字符串操作 笔记

    /* C语言字符串的操作笔记 使用代码和注释结合方式记录 */ # include <stdio.h> # include <string.h> int main(void) ...

  4. HDU 4277 USACO ORZ(暴力+双向枚举)

    USACO ORZ Time Limit: 5000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. Redhat Linux 下安装Oracle 11g R2

    能够下载:http://download.csdn.net/detail/ykh554541184/8086647文档方便查阅 官方文档:http://docs.oracle.com/cd/E1188 ...

  6. hdu4908 &amp; BestCoder Round #3 BestCoder Sequence(组合数学)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4908 BestCoder Sequence Time Limit: 2000/1000 MS (Jav ...

  7. mongodb09----replicattion set--健壮性

    replication set复制集 replicattion set 多台服务器维护相同的数据副本,提高服务器的可用性.一台是服务器出问题了另外2台还可以接收干,secondary平时保持只读状态, ...

  8. HDU2444 The Accomodation of Students —— 二分图最大匹配

    题目链接:https://vjudge.net/problem/HDU-2444 The Accomodation of Students Time Limit: 5000/1000 MS (Java ...

  9. YTU 2440: C++习题 复数类--重载运算符+,-,*,/

    2440: C++习题 复数类--重载运算符+,-,*,/ 时间限制: 1 Sec  内存限制: 128 MB 提交: 1189  解决: 774 题目描述 定义一个复数类Complex,重载运算符& ...

  10. 数据库sqlite3的使用-代码实例应用

      一.使用代码的方式批量添加(导入)数据到数据库中 1.执行SQL语句在数据库中添加一条信息 插入一条数据的sql语句: 点击run执行语句之后,刷新数据 2.在ios项目中使用代码批量添加多行数据 ...