本篇文章小编给大家分享一下Java中的字节输入与输出流代码实例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
字节输入流
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(); } } } } }
字节输出流
java.io.OutputStream抽象类是所有字节输出流的超类,该类用于对文件写入数据。
字节输出流结构图:
FileOutputStream类
FileOutputStream类是向文件中以字节的形式写入数据,例如图像和图片等。
构造方法:
FileOutputStream(File file);通过一个file对象表示的文件创建一个字节输出流。
FileOutputStream(File file, boolean append);通过一个file对象表示的文件创建一个字节输出流,append表示追加,true代表往后追加,false则要全部覆盖,文件里只存留刚写入的数据。
FileOutputStream(String name);通过一个指定路径名字符串创建一个字节输出流对象。
FileOutputStream(String name, boolean append);通过一个指定路径字符串创建一个字节输出流对象,append同上。
常用写入方法:
write(byte[] b); 将b.length个字节从指定的byte数组中写入到此输出流中。
write(byte[] b, int off, int len); 将指定的byte数组从偏移量off开始到len个字节写入到此输出流中。
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(); } } } } }
忍者必须死34399账号登录版 最新版v1.0.138v2.0.72
下载勇者秘境oppo版 安卓版v1.0.5
下载忍者必须死3一加版 最新版v1.0.138v2.0.72
下载绝世仙王官方正版 最新安卓版v1.0.49
下载Goat Simulator 3手机版 安卓版v1.0.8.2
Goat Simulator 3手机版是一个非常有趣的模拟游
Goat Simulator 3国际服 安卓版v1.0.8.2
Goat Simulator 3国际版是一个非常有趣的山羊模
烟花燃放模拟器中文版 2025最新版v1.0
烟花燃放模拟器是款仿真的烟花绽放模拟器类型单机小游戏,全方位
我的世界动漫世界 手机版v友y整合
我的世界动漫世界模组整合包是一款加入了动漫元素的素材整合包,
我的世界贝爷生存整合包 最新版v隔壁老王
我的世界MITE贝爷生存整合包是一款根据原版MC制作的魔改整