输入字节流:

  1. import java.io.*;
  2. public class test_main {
  3. public static void main(String[] args) {
  4. int n=-1;
  5. byte []a = new byte[100];
  6. try {
  7. File f = new File("Example10_4.java");
  8. /*File类文件和目录路径名的抽象表示
  9. *File(String pathname)通过将给定的路径名字符串转换
  10. 为抽象路径名来创建新的 File实例。*/
  11. InputStream in = new FileInputStream(f);
  12. /******************************************
  13. *InputStream 抽象类是表示输入字节流所有类的超类
  14. *FileInputStream 用于读取诸如图像数据的原始字节流
  15. *FileInputStream(File file)通过打开与实际文件
  16. 的连接创建一个 FileInputStream ,该文件由文件系统
  17. 中的 File对象 file命名。
  18. ******************************************/
  19. while((n=in.read(a,0,100))!=-1){
  20. /* int read(byte []b,int off,int len)
  21. * b - 读取数据的缓冲区,off - 写入数据的数组 b中的起始偏移量。
  22. * len - 要读取的最大字节数。
  23. * 从输入流读取len字节的
  24. * 数据到一个字节数组。实际读取的字节数作为整数返回。
  25. * 该方法阻塞直到输入数据可用,检测到文件结束或抛出异常。
  26. * 如果len为零,则不会读取字节并返回0;
  27. * 否则,尝试读取至少一个字节。 如果没有字节可用,因为流是文件的-1则返
  28. * 回值-1 ; 否则,读取至少一个字节并存储到b 。
  29. *
  30. * */
  31. String s = new String(a,0,n);
  32. // String(byte[] bytes, int offset, int length)
  33. // bytes - 要解码为字符的字节
  34. // offset - 要解码的第一个字节的索引
  35. // length - 要解码的字节数
  36. // 通过使用平台的默认字符集解码指定的字节子阵列来构造新的String。
  37. // 新的String的长度是字符集的函数,因此可能不等于子数组的长度。
  38. // 指定字节在默认字符集中无效时,此构造函数的行为是未指定的。
  39. System.out.print(s);
  40. }
  41. in.close();
  42. /*public void close()throws IOException
  43. 关闭此输入流并释放与流相关联的任何系统资源。
  44. 该close的方法InputStream什么都不做。
  45. IOException异常类
  46. 表示发生某种类型的I / O异常。
  47. 此类是由失败或中断的I / O操作产生的一般异常类。 */
  48. }
  49. catch(IOException e) {
  50. System.out.println("File read Error"+e);
  51. }
  52. }
  53. }

输出字节流:

  1. import java.io.File;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import java.io.OutputStream;
  5. public class test_main {
  6. public static void main(String[] args) {
  7. // TODO 自动生成的方法存根
  8. byte[] a="新年快乐".getBytes();
  9. byte[] b="Happy New Year".getBytes();
  10. /* 使用平台的默认字符集将该String编码为一系列字节,
  11. 将结果存储到新的字节数组。*/
  12. File file = new File("a.txt");
  13. /*文件和目录路径名的抽象表示
  14. 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
  15. 如果给定的字符串是空字符串,则结果是空的抽象路径名。
  16. 参数-pathname-路径名字符串
  17. 异常NullPointerException-if patchname==null*/
  18. System.out.println(file.getAbsolutePath());
  19. try {
  20. OutputStream out = new FileOutputStream(file);
  21. /*OutputStream这个抽象类是表示字节输出流的所有类的超类
  22. FileOutputStream文件输出流是用于将数据写入File或
  23. FileDescriptor的输出流。用于写入诸如图像数据的原始
  24. 字节流。*/
  25. System.out.println(file.getName()+"的大小:"
  26. +file.length()+"字节");
  27. // getName返回此抽象路径名标识的文件或目录的名称
  28. out.write(a);
  29. // 将b.lenth字节从指定的字节数组写入此文件输出流
  30. out.close();
  31. // 关闭此文件输出流并释放与此流相关联的任何系统资源
  32. out = new FileOutputStream(file,true);
  33. /*创建文件输出流以写入由指定的File对象表示的文件
  34. 如果第二个参数为true,则字节将写入文件的末尾而
  35. 不是开头。*/
  36. System.out.println(file.getName()+"的大小:"
  37. +file.length()+"字节");
  38. out.write(b,0,b.length);
  39. /*将len字节从指定的字节数组开始,从偏移量off开始写入此
  40. 文件输出流*/
  41. System.out.println(file.getName()+"的大小:"
  42. +file.length()+"字节");
  43. out.close();
  44. }
  45. catch(IOException e) {
  46. System.out.println("Error "+e);
  47. }
  48. System.out.println(file.getAbsolutePath());
  49. }
  50. }

文件 I/O字节流的更多相关文章

  1. java的文件流:字节流(FileInputStream、FileOutputStream)和字符流(FileReader、FileWriter)。

    java的输入输出建立在4个抽象类的基础上:InputStream.OutputStream.Reader.Writer.InputSream和OutputStream被设计成字节流类,而Reader ...

  2. Java文件与io——字节流

    FileOutputStream用于写入诸如图像数据之类的原始字节的流 字节输出流:OutputStream 此抽象类表示输出字节流的所有类的超类.(写) 字节输入流:InputStream(读) p ...

  3. java 20 -10 字节流四种方式复制mp3文件,测试效率

    电脑太渣,好慢..反正速率是: 高效字节流一次读写一个字节数组 > 基本字节流一次读写一个字节数组 > 高效字节流一次读写一个字节 > 基本字节流一次读写一个字节 前两个远远快过后面 ...

  4. java使用字节流和字符流实现文件复制

    大家在Java开发中都会遇到文件复制的文件,众所周知,需要通过文件输入输出流实现. 那究竟该怎么做那,话不多说,直接上代码: 一,使用字节流复制文件 public class FileByteCopy ...

  5. 如何检测或判断一个文件或字节流(无BOM)是什么编码类型

    前言: 昨天,在文章:终于等到你:CYQ.Data V5系列 (ORM数据层,支持.NET Core)最新版本开源了 中, 不小心看到一条留言: 然后就去该地址看了一下,这一看,顺带折腾了一天. 今天 ...

  6. Java中的字节流,字符流,字节缓冲区,字符缓冲区复制文件

     一:创建方式 1.建立输入(读)对象,并绑定数据源 2.建立输出(写)对象,并绑定目的地 3.将读到的内容遍历出来,然后在通过字符或者字节写入 4.资源访问过后关闭,先创建的后关闭,后创建的先关闭 ...

  7. IO之4种字节流拷贝文件方式对比

    public class CopyMp4Demo { public static void main(String[] args) throws IOException { long start = ...

  8. 如何理解“Unix 里一切都是文件”这句话-在 UNIX 中,一切都是字节流

    UNIX 操作系统的设计.用户界面.文化和演变都是建立在它的一套统一的想法和概念上.其中最重要的一点可能是“一切皆文件”,而这个概念被认为是 UNIX 的灵魂之一. 这一关键设计原则提供了一个统一的范 ...

  9. java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

随机推荐

  1. 设计模式之装饰模式(Decorator)

    1. 装饰者模式,动态地将责任附加到对象上.若要扩展功能,装饰者提供了比继承更加有弹性的替代方案. 2.组合和继承的区别 继承.继承是给一个类添加行为的比较有效的途径.通过使用继承,可以使得子类在拥有 ...

  2. Python 进程线程协程 GIL 闭包 与高阶函数(五)

    Python 进程线程协程 GIL 闭包 与高阶函数(五) 1 GIL线程全局锁 ​ 线程全局锁(Global Interpreter Lock),即Python为了保证线程安全而采取的独立线程运行的 ...

  3. 再学UML-Bug管理系统UML2.0建模实例(一)

    1.项目概述       随着软件项目规模和复杂性的增大,有效跟踪和管理项目中存在的缺陷Bug变得越来越重要.每一个软件企业都需要妥善处理软件中的缺陷,这将直接关系到软件过程质量与软件产品质量,但并非 ...

  4. ThinkPHP5.0版本的优势在于:

    更灵活的路由: 依赖注入: 请求缓存: 更强大的查询语法: 引入了请求/响应对象: 路由地址反解生成: 增强的模型功能: API开发友好: 改进的异常机制: 远程调试支持: 单元测试支持: 命令行工具 ...

  5. HTTPS科普(转)

    为什么需要https HTTP是明文传输的,也就意味着,介于发送端.接收端中间的任意节点都可以知道你们传输的内容是什么.这些节点可能是路由器.代理等. 举个最常见的例子,用户登陆.用户输入账号,密码, ...

  6. 【转载】#445 - Differences Between an Interface and an Abstract Class

    An interface provides a list of members, without an implementation, that a class can choose to imple ...

  7. nginx安装和基础代理配置

    mac上执行 npm install nginx 安装好后运行nginx sudo nginx 一般mac下nginx会安装在 /usr/local/etc/nginx 下 里面的nginx.conf ...

  8. DisparityCostVolumeEstimator.cpp

    #include "DisparityCostVolumeEstimator.hpp" #include "DisparityCostVolume.hpp" # ...

  9. [转]Android Studio启动时出现unable to access android sdk add-on list

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50563122 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

  10. Jquery 1.8全选反选删除选中项实现

    JQuery1.6以后,Prop的出现,让1.6以下的全选反选效果全部失效了.以下是修正后的版本: 全选反选效果: $(".checkbox").click(function () ...