3、InputStream


package com.io.file; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream; //InputStream
//(1)从流中读取数据
// int read() 读取一个字节,返回值为所读得字节
// int read(byte b[]) 读取多个字节,放置到字节数组b中,通常读取的字节数量为b的长度,返回值为实际独取的
// 字节的数量。
// int read(byte b[] ,int off,int len)读取len个字节,放置到以下标off开始字节数组b中,返回值为实际
// 读取的字节的数量。
// int available() 返回值为流中尚未读取的字节的数量。
// long skip(long n);读指针跳过n个字节不读,返回值为实际跳过的字节数量
//(2)关闭流
// close() 流操作完毕后必须关闭
//(3)使用输入流中的标记
// void mark(int readlimit)纪录当前指针的所在位置.readlimit表示读指针读出的readlimit个字节后
// 所标记的指针位置才实效。
// void reset() 把读指针重新指向用mark方法所记录的位置
// boolean markSupported() 当前的流是否支持读指针的记录功能。 public class TestInputStream { public static void main(String[] args) throws IOException {
File f = new File("E:" + File.separator + "单选题gbk.txt");
InputStream fis = new FileInputStream(f);
System.out.println("未读之前的字节长度为 " + fis.available()); System.out.println("read()是读取一个字节,但是中文占两个字节,所以显示乱码,建议使用数组: "
+ (char) fis.read());
fis.read();
// System.out.println((char)(fis.read()+fis.read()));//乱码
// System.out.println(new String(new byte[]{(byte) fis.read(),(byte)
// fis.read()},0,2));//乱码 // byte[] b=new byte[1024];
byte[] b = new byte[324];
int read = fis.read(b); System.out.println("实际读取字节的数量为 " + read);
System.out.println("尚未读取的字节的数量为 " + fis.available()); System.out.println(new String(b, 0, read)); } }
3、InputStream的更多相关文章
- String 、InputStream、Reader 的转换
1.String –> InputStream InputStrem is = new ByteArrayInputStream(str.getBytes());orByteArrayInput ...
- 【设计模式】适配器模式与Reader、InputStream之间的适配
简述 适配器模式,目的是将A对象通过适配.转换的方式转换成B对象来使用,为什么转换为B对象?因为用户通过依赖B对象来使用. 适配器的实现有两种方式. 继承实现 组合实现 基于Java单继承的机制,组合 ...
- Java BufferedReader、InputStream简介
InputStream 数据流类 一般来说,就是将字符串.管道数据(socket通倒).文件.字节等转换为输入流,以流的方式去读取: 但是inputstream的读取速率较低,为了提高读取速率,一般 ...
- java 中 byte[]、File、InputStream 互相转换
1.将File.FileInputStream 转换为byte数组: File file = new File("test.txt"); InputStream input = n ...
- 【java】java 中 byte[]、File、InputStream 互相转换
========================================================================= 使用过程中,一定要注意close()掉各个读写流!! ...
- 字节流与字符流简单操作(OutputStream、InputStream、Writer、Reader)
操作流程 使用File类打开一个文件 通过字节流或者字符流的子类.指定输出的位置. 进行读/写操作 关闭输入/出 字节流与字符流 在java.io包中操作文件内容主要有两大类:字节流字符流.两大类分为 ...
- Java精选笔记_IO流(字节流、InputStream、OutputStream、字节文件、缓冲区输入输出流)
字节流 操作图片数据就要用到字节流. 字符流使用的是字符数组char[],字节流使用的是字节数组byte[]. 字节流读写文件 针对文件的读写,JDK专门提供了两个类,分别是FileInputStre ...
- InputStream、OutputStream、String的相互转换(转)
//1.字符串转inputStream String string; //...... InputStream is = new ByteArrayInputStream(string.getByte ...
- inputStream、File、Byte、String等等之间的相互转换
一:inputStream转换 1.inputStream转为byte //方法一 org.apache.commons.io.IOUtils包下的实现(建议) IOUtils.toByteArray ...
随机推荐
- CentOS系统如何设置服务开机自动运行
centos安装好apache,mysql等服务器程序后,并没有设置成开机自动启动的,为避免重启后还要手动开启web等服务器,还是做下设置好,其实设置很简单,用chkconfig命令就行了.例如要开机 ...
- BC一周年B
#include <cstdio> #include <iostream> #include <algorithm> #include <queue> ...
- poj 1426 Find The Multiple ( BFS+同余模定理)
Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 18390 Accepted: 744 ...
- 李洪强iOS开发之性能优化技巧
李洪强iOS开发之性能优化技巧 通过静态 Analyze 工具,以及运行时 Profile 工具分析性能瓶颈,并进行性能优化.结合本人在开发中遇到的问题,可以从以下几个方面进行性能优化. 一.view ...
- C++ 虚函数与纯虚函数 浅析
[摘要] 在虚函数与纯虚函数的学习中.要求理解虚函数与纯虚函数的定义,了解虚函数与纯虚函数在实例化上的差异.掌握两者在实现上的必要性.熟悉纯虚函数在子类与孙类的函数类型.本文即针对上述问题展开阐述. ...
- unable to instantiate activity...
Activity跳转到Activity,后来由于项目需要将第二个Activity改成继承FragmentActivity,跳转报错...无法初始化Activity,找不到class云云.. 最后是将b ...
- reverse proxy and forward proxy
1 什么是forward proxy 一句话,client的proxy就是forward proxy. 2 什么是reverse proxy 一句话,server的proxy就是reverse pro ...
- IsNumeric 判断字符串是否为数字(使用Val函数实现),这个函数相当于Java的IsNaN函数
IsNumeric 判断字符串是否为数字,如果是数字返回true,如果包含有汉字或字符的话返回false. 由于Delphi本身没有IsNumeric这个函数,不像其它语言,这个函数相当于Java的I ...
- 5.2【Linux 内核网络协议栈源码剖析】socket 函数剖析 ☆☆☆
深度剖析网络协议栈中的 socket 函数,可以说是把前面介绍的串联起来,将网络协议栈各层关联起来. 应用层 FTP SMTP HTTP ... 传输层 TCP UDP 网络层 IP ICMP ARP ...
- YTU 2946: 填空:间接基类就是A
2946: 填空:间接基类就是A 时间限制: 1 Sec 内存限制: 128 MB 提交: 132 解决: 96 题目描述 如下程序所示,D继承自B和C,而B和C均继承自A.根据继承的机制,D的对 ...