您好,登录后才能下订单哦!
这篇文章主要为大家展示了“Java中字节输入与输出流的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中字节输入与输出流的示例分析”这篇文章吧。
java.io.InputStream抽象类是所有字节输入流的超类,将数据从文件中读取出来。
在Java中针对文件的读写操作有一些流,其中介绍最常见的字节输入流。
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(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(); } } } } }
以上是“Java中字节输入与输出流的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。