首页IT科技inputstream用法(InputStream–使用详解)

inputstream用法(InputStream–使用详解)

时间2025-09-18 09:53:08分类IT科技浏览5127
导读:本篇可以号称是市面最全面的InputStream的用法详解,如下所示...

本篇可以号称是市面最全面的InputStream的用法详解                  ,如下所示

在java中InputStream是字节输入流                           ,用来将文件中的数据读取到java程序中                  。

InputStream是所有字节输入流的顶层父类         ,是一个抽象类                           。如果要用         ,需要使用子类         。

最常用的子类:FileInputStream                  。

构造方法:

FileInputStream​(File file): 传递一个File类型的文件FileInputStream​(String name): 传递一个String类型的文件路径

其他方法:

int read​(): 从文件中读取一个字节数的数据                           。并返回读取到的这个字节         。 如果读取结束                           ,返回的是-1.

int read​(byte[] b): 一次读取一个字节数组                  ,输入流会把读取到的内容放入到这个字节数组中         ,并返回读取到的个数                           , 如果读取结束返回-1.

void close​()

使用步骤:

1. 创建一个FileInputStream流对象                  ,绑定一个数据源文件         。

2. 调用read方法读取数据                           。

3. 释放资源

注意: 这种方式不能读取中文,一个中文占多个字节                           ,此时一次读取一个字节会把中文拆开读                  。

*/

使用字节输入流一次读取一个字节数组         。

int read​(byte[] b): 一次读取一个字节数组                           ,

输入流会把读取到的内容放入到这个字节数组中,并返回读取到的个数                  , 如果读取结束返回-1.

这种读取方式效率高

*/
public class Demo02InputStream { public static void main(String[] args) throws IOException { //创建Fileinptstream 流对象                           ,并绑定源文件 FileInputStream fis=new FileInputStream("E:\\Test\\java265.txt"); //调用read方法读取数据. // // int read​(byte[] b): 一次读取一个字节数组 // 会将数据读取到字节数组里面                           。 字节数组长度是几         ,那么就最多一次读取几个                  。 并 // 且返回读取到的个数                  ,读取结束                           ,返回-1 // // //使用循环         ,一次读取一个字节数组 // //定义一个字节数组         ,用来保存读取到的数据。 byte arr[]=new byte[3]; //定义一个变量来保存读到的个数 int len;//返回读取到的个数 //使用循环开始读取 while((len=fis.read(arr))!=-1){ /* 上面条件作了下面的事情: 1. 通过字节输入流fis调用read方法                           ,将数据读取到Arr这个字节数组中 2. 将读取到的有效个数返回                  ,赋值给len                           。 3. 判断len是否不等于-1         ,如果不等于-1                           ,表示读取到了内容                  ,就就在循环中进行处理. 读取出来的数组在bArr数组中放着 */ //最后一次读取可能会有上次残留的数据,所以不能把字节数组的整体都转成String //System.out.println(new String(bArr)); //读取到了几个内容                           ,就把字节数组的几个元素转成字符串                           ,并且打印 System.out.println(new String(arr,0,len)); } } }

文件复制                           。

文件复制其实就是一边读,一边写                  ,每读取一次就把读取到的内容写到文件中。

为了保证复制效率                           ,我们采用一次读取一个字节数组的方式进行复制

思路:

1. 创建字节输入流对象         ,用来读取

2. 创建字节输出流对象                  ,用来写入                  。

3. 开始读取                           ,一次读取一个字节数组                           。

4. 把读取到的字节数组的内容写入到目的地文件

5. 循环 第3步 和 第4步

6. 释放资源

*/
public class FileCopy { public static void main(String[] args) throws IOException { //1. 创建字节输入流对象         ,用来读取 FileInputStream fis = new FileInputStream("E:\\test\\java265.jpg"); //2创建字节输出流对象         ,用来写入//没有会创建 FileOutputStream fs = new FileOutputStream("java25.com"); //3创建一个数组用来读取 byte arr[] = new byte[1024 * 8]; int len;//用来计数 while ((len = fis.read(arr)) != -1) { //从文件中用字节数组读取数组                           ,存储到字节数组中 // 每读取到一个内容                  ,就把读取到的内容写入到目的地文件 fs.write(arr,0,len); } //释放资源 fs.close(); fis.close(); } }
声明:本站所有文章         ,如无特殊说明或标注                           ,均为本站原创发布         。任何个人或组织                  ,在未征得本站同意时,禁止复制                  、盗用                           、采集         、发布本站内容到任何网站                  、书籍等各类媒体平台                  。如若本站内容侵犯了原著者的合法权益                           ,可联系我们进行处理                           。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
wordpress采集规则(WordPress采集源码,打造个性化网站的不二选择) 静态网站生成工具(Emlog静态网站生成插件-打造高效稳定的网站发布方案)