Java中的IO流:就是内存与设备之间的输入和输出操作就成为IO操作,也就是IO流。内存中的数据持久化到设备上--------》输出(Output)。把 硬盘上的数据读取到内存中,这种操作 成为输入-----》读(Input)。

input和output的参照物都是Java程序来参照

Input:读  持久化上的数据------》内存 父类 InputStream

output:写  内存---------》硬盘  父类OutputStream

IO程序书写流程:

  1 使用前   导包 IO包中的类(import java.io.*)

  2   使用中   进行异常的处理

  3 使用后     释放资源(close())

例子如下:

OutputStream字节输出流的用法(写):

 package com.aaa.demo;

 import java.io.FileNotFoundException;
import java.io.FileOutputStream; /*
* FileOutputStream 写入数据文件 学习父类的方法 使用子类的对象
* 子类中的构造方法 作用:绑定输出的目的的
* File封装的文件
* String字符串的文件夹
* */
public class FileOutputStreamDemo {
public static void main(String[] args) throws Exception {
//创建流子类对象 绑定数据目的
FileOutputStream fos=new FileOutputStream("c:\\aaa.txt");
//调用write()方法 写一个字节
fos.write(97);
//2.1写字节数组
byte[] b={65,66,67,68};
fos.write(b);
//2.2写字节数组的一部分
fos.write(b,1,2);
//2.3写字符串 getBytes()字符串转字节
fos.write("hello world".getBytes());
//3.close关闭资源
fos.close();
}
}

InputStream字节输入流的用法(读):

 package cn.lijun.demo1;

 import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; // 1创建字节输入流的子类对象
//2 调用方法读取 read
//3 关闭资源 public class FileInputStreamDemo {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("c:\\aaa.txt");
int len =0;
while((len=fis.read())!=-1){
System.out.print((char)len);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

字节流和字符流的相同和区别:

  相同点:两类都分为输入和输出操作。

  不同点:1、字节流可用于任何类型的对象;分为InputStream(读)和OutputStream(写)两部分完成输入和输出;主要用来处理字节或二进制对象,,不能处理Unicode字符。

      2、字符流分别操作字符、字符数组或字符串;分为Writer类和Reader类完成;主要用来处理字符或者字符串,可以处理Unicode字符。

最新文章

  1. [DFNews] Cellebrite UFED Physical Analyzer 3.8
  2. HDU 3001 Traveling(状压DP)
  3. leetcode 20
  4. maven主仓库中找不到restlet的解决办法
  5. Sicily1020-大数求余算法及优化
  6. Java__jar包的简单操作
  7. js 监控浏览器关闭事件
  8. mongodb备份还原脚本
  9. 【我的前端自学之路】【HTML5】Web Socket
  10. Booth乘法
  11. ubuntu10.04 32 编译android源码的问题
  12. css 可继承属性 display:inline-block 历史
  13. FireDAC 下的 Sqlite [2] - 第一个例子
  14. Ruby gem: Mac 系统下的安装与更新
  15. Linux debugger lldb
  16. SharePoint自动化系列——Solution auto-redeploy using Selenium(C#)
  17. SVM中为何间隔边界的值为正负1
  18. 20155207 2016-2017-2 《Java程序设计》第十周学习总结
  19. 诺基亚9 PureView正式发布
  20. sprites.png雪碧图

热门文章

  1. 可恶的 0xc0000005异常
  2. 【Social Listening实战】当数据分析遭遇心理动力学:用户深层次的情感需求浮出水面
  3. Maven运行的方式
  4. laravel 的 intervention-image 图像处理笔记
  5. JMeter之Ramp-up Period(in seconds)说明
  6. python之type
  7. git 找回本地误删的文件
  8. react-native android 报错 error calling Appregistry.runApplication
  9. Django--views(视图层)
  10. 关于 C++ 默认构造函数 的几个误区 转载