Jtti广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >图文详解Java中的字节输入与输出流
  • 822
分享到

图文详解Java中的字节输入与输出流

摘要

目录字节输入流 字节输入流结构图FileInputStream类构造方法:常用读取方法:字节输出流 字节输出流结构图:FileOutputStream类构造方法:常用写入方法:总结字节输入流 java.io.InputStream抽象类是

目录
  • 字节输入流
    • 字节输入流结构图
    • FileInputStream类
    • 构造方法:
    • 常用读取方法:
  • 字节输出流
    • 字节输出流结构图:
    • FileOutputStream类
    • 构造方法:
    • 常用写入方法:
  • 总结

    字节输入流

    java.io.InputStream抽象类是所有字节输入流的超类,将数据从文件中读取出来。

    字节输入流结构图

    在Java中针对文件的读写操作有一些流,其中介绍最常见的字节输入流。

    FileInputStream类

    FileInputStream流被称为字节输入流,对文件以字节的形式读取操作,例如文字,图片等。

    构造方法:

    • FileInputStream(File file) ;通过File文件对象创建
    • FileInputStream(String name) ;通过一个文件路径字符串创建

    常用读取方法:

    read() 方法,从文件的第一个字节开始读取,每执行一次就读取一个字节,如果文件为空,则读取返回-1,挨个字节读取对于中文字符会出现乱码。

    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    
    public class dome2{
    	public static void main(String[] args){
    	  File file=new File("D:/.../...txt");   //创建file对象
    	  FileInputStream fi=null;
    	 try {
    		 fi=new FileInputStream(file);   //创建字节输入流
    		 
    		 int read;   
    		 
    		 while((read=fi.read())!=-1) {   //数据不为空的情况下循环读取
    			 System.out.print((char)read);   //将读取的数据打印
    		 }
    	} catch (FileNotFoundException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	} catch (IOException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}finally {
    		if(fi!=null) {
    			try {
    				fi.close();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    	}
    	 
       }
    }
    

    read(byte[] b) ,从此输入流中读取b.length个字节的数据读入到byte数组中,针对中文字符读取产生乱码,需要编码,如果记事本存储的汉字是什么格式的就在读取的时候改成什么格式,例如我现在记事本的编码格式是ANSI,在读取的时候就是按照ANSI或者gbk编码格式读取。

    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    
    public class dome2{
    	public static void main(String[] args){
    	  File file=new File("D:/../...txt");   //创建file对象
    	  FileInputStream fi=null;
    	 try {
    		 fi=new FileInputStream(file);   //创建字节输入流
    		 
    		 int read;   
    		 byte[] bytes=new byte[1024];  //创建一个数组,讲读取的字节存入数组
    		 while((read=fi.read(bytes))!=-1) {   //数据不为空的情况下循环读取
    			 System.out.print(new String(bytes,0,read,"gbk"));   //将读取的数据按字符串打印
    		 }
    	} catch (FileNotFoundException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	} catch (IOException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}finally {
    		if(fi!=null) {
    			try {
    				fi.close();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    	}
    	 
       }
    }
    
    方法名 说明
    void close() 关闭此文件输入流并释放关于此流有关的所有系统资源
    int read(byte[] b, int off, int len) 从此输入流中将len个字节的数据读入到byte数组中
    int available() 返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。
    long skip(long n) 从输入流中跳过并丢弃 n 个字节的数据。

    字节输出流

    java.io.OutputStream抽象类是所有字节输出流的超类,该类用于对文件写入数据。

    字节输出流结构图:

    FileOutputStream类

    FileOutputStream类是向文件中以字节的形式写入数据,例如图像和图片等。

    构造方法:

    1. FileOutputStream(File file);通过一个file对象表示的文件创建一个字节输出流。
    2. FileOutputStream(File file, boolean append);通过一个file对象表示的文件创建一个字节输出流,append表示追加,true代表往后追加,false则要全部覆盖,文件里只存留刚写入的数据。
    3. FileOutputStream(String name);通过一个指定路径名字符串创建一个字节输出流对象。
    4. FileOutputStream(String name, boolean append);通过一个指定路径字符串创建一个字节输出流对象,append同上。

    常用写入方法:

    1. write(byte[] b); 将b.length个字节从指定的byte数组中写入到此输出流中。
    2. write(byte[] b, int off, int len); 将指定的byte数组从偏移量off开始到len个字节写入到此输出流中。
    3. write(int b); 将指定字节写入到此输出流中。
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    
    public class dome2{
    	public static void main(String[] args){
    	  File file=new File("D:/hello.txt");   //创建file对象
    	  FileOutputStream fo=null;
    	  
    	  try {
    		fo=new FileOutputStream(file);
    		String str="你好,java!";
    		byte[] bytes=str.getBytes();
    		fo.write(bytes);
    	} catch (FileNotFoundException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	} catch (IOException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}finally {
    		if(fo!=null) {
    			try {
    				fo.close();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    	}
    
       }
    }
    

    总结

    到此这篇关于Java中字节输入与输出流的文章就介绍到这了,更多相关Java字节输入与输出流内容请搜索编程界以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程界!

    --结束END--

    本文标题: 图文详解Java中的字节输入与输出流

    本文链接: https://www.lsjlt.com/news/88.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • JavaIO之字节输入输出流详解
      目录1、字节输出流:OutputStream2、字节输入流:InputStream3、用字节流完成文件的复制总结那么这篇博客我们讲的是字节输入输出流:InputStream、Outp...
      111
      2023-10-01
      Java IO IO字节输入 IO字节输出
    • Java中的字节,字符输出流与字节和字符输入流的简单理解
      目录字节输出流OutputStream字符输出流字节输入流InputStream字符输入流Reader字节流和字符流的区别总结我先解释一下什么叫IO流: I:指的是Inpu...
      442
      2023-10-01
      Java字节 Java字符输出流 Java字符输入流
    • JAVA输入输出流详解(H)
      */public String loadFileCon(String fileName,File file,String type){String fileContent = "",conTemp = "";byte[] fileConfB...
      397
      2023-10-01
    • JAVA输入输出流详解(G)
      import java.util.*;import java.util.zip.*;import java.io.*;class ZipFileHandle{private String[] FileNameArray; ...
      595
      2023-10-01
    • JAVA输入输出流详解(F)
      前两天看了《java核心编程》中对于java中的IO输入输出讲解,收获良多,下面的程序是我读完书以后自己写的一个将zip文件集中的文件内容读取出来然后显示(只限于文本,其他文件将会产生乱码),此程序也可通过改进可以得到一个和winzi...
      422
      2023-10-01
    • JAVA语言的输入输出流详解(c)
      详解b中的例子,详解[@more@]  1. BufferedReader是Reader的一个子类,它具有缓冲的作用,避免了频繁的从物理设备中读取信息。它有以下两个构造函数:BufferedReader(Reader in) Buffere...
      230
      2023-10-01
    • C++的输入和输出流详解
      目录输入和输出流标准输入流小案例标准输出流文件读写总结输入和输出流 从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。 从磁盘文件输入数据,数据输出到...
      918
      2023-10-01
      C++输入 C++输出流
    • Java实现带缓冲的输入输出流
      缓冲是 I/O 的一种性能优化。缓冲流为 I/O 流增加了内存缓冲区。 BufferedInputStream类 与 BufferedOutputStream类 BufferedIn...
      271
      2023-10-01
      Java 缓冲 输入输出流
    • C++学习之IO流(输入输出流)详解
      目录介绍基本输入、输出流freopen字符类的处理介绍 流: 若干字节数据从一端到另一端我们叫做流 例如:操作文件,从程序到文件,数据的流动的操作称为流操作 流类体系 专门处理输入输...
      253
      2023-10-01
      C++ IO流 C++ C++ 输入输出流
    • Java怎么实现带缓冲的输入输出流
      本篇内容主要讲解“Java怎么实现带缓冲的输入输出流”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java怎么实现带缓冲的输入输出流”吧!缓冲是 I/O 的一种性能优化。缓冲流为 I/O 流增加...
      338
      2023-10-01
    • Java IO中字节输入输出流的示例分析
      这篇文章主要介绍Java IO中字节输入输出流的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!讲的是字节输入输出流:InputStream、OutputSteam(下图红色长方形框内),红色椭圆框内...
      652
      2023-10-01
    • C++基础学习之输入输出流详解
      目录1. 输入输出流2. 文件输入输出3. 格式化输入输出4. 字符串输入输出5. 空格处理C++是一种广泛应用的编程语言,其输入和输出是程序所必须的基本操作之一。输入是指从外部获取...
      806
      2023-10-01
      C++输入输出流 C++输入流 C++输出流
    • java如何获取输出流内容
      在Java中,可以通过以下方法来获取输出流的内容:1. 使用ByteArrayOutputStream类:可以创建一个ByteArr...
      129
      2023-10-01
      java
    • java 对象输入输出流读写文件的操作实例
      java 对象输入输出流读写文件的操作实例java 支持对对象的读写操作,所操作的对象必须实现Serializable接口。 实例代码:package vo; import java.io.Serializable; public cl...
      694
      2023-10-01
      java
    • java管道piped输入流与输出流应用场景案例分析
      目录前言原理简介使用场景概述实际应用案例一:EXCEL文件导出功能案例二:XML文件数据传输结语前言 PipedInputStream 和 PipedOutputStream 设计用...
      902
      2023-10-01
      java管道输入流与输出流 java管道
    • C++输入流和输出流 超级详细
      目录1、简单介绍2、C++输入流和输出流1、简单介绍 C++ 又可以称为“带类的 C”,即可以理解为 C++ 是 C 语言的基础上增加了面向对象(类和对象)。在此基础上,学过 C 语...
      257
      2023-10-01
      C++输入流 C++输出流
    • 详解Java中的字节码增强技术
      目录1.字节码增强技术2.常见技术3.ASM3.1 测试 Main3.2 测试 CustomerClassVisitor3.3 测试 Test1.字节码增强技术 字节码增强技术就是一...
      618
      2023-10-01
      Java字节码增强 Java字节码
    • Java的输入输出流的概念
      本篇内容主要讲解“Java的输入输出流的概念”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的输入输出流的概念”吧!Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出...
      396
      2023-10-01
    • 实时获取Python的print输出流
      我的应用场景是:使用shell执行python文件,并且通过调用的返回值获取python的标准输出流。 shell程序如下: cmd='python '$1' '$2' '$3' '$5' '$4 RESULT=eval $cm...
      129
      2023-10-01
      实时 Python print
    • Java中输入/输出流体系的示例分析
      这篇文章主要介绍Java中输入/输出流体系的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java输入/输出流体系1.字节流和字符流字节流:按字节读取。字符流:按字符读取。字符流读取方便,字节流功能强大,当不...
      549
      2023-10-01
      java
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作