I/O是input/output的缩写,即输入输出系统。

I/O操作即从数据源中读取数据,以及将数据写入到数据目的地中。读的来源(如文件、键盘、网络)和写的目的地(如文件、屏幕、网络)分为很多种。

数据的流向以java程序为参照物,数据进入到程序中使用输入流,数据从程序中出去则使用输出流。

“流”:在数据源和程序之间建立的用于数据流通的管道,数据通过管道一点点的流入/流出。

I/O的分类:

输入流/输出流,字节流/字符流,节点流/处理流

I/O当中字节流的核心类

InputStream类和OutputStream类是所有字节流类的父类,两个类都是抽象类。FileInputStream是InputStream的常用子类,用于从硬盘中读取数据。FileOutputStream是OutputStream的常用子类,用于把数据写入硬盘中。

核心类的核心方法:

InputStream:

int read(byte [] b, int off, int len)

read方法用于读取数据,第一个参数为byte类型的数组,用于存放读取到的数据。第二个参数为偏移量,规定读取的数据从数组的指定位置开始存放。第三个参数表示数组的长度,即read每次可读取数据的量。该方法的返回值为读取到的数据的字节数。

OutputStream:

void write(byte [] b, int off, int len)

write方法用于写入数据,第一个参数为要写入的数据,第二个参数为偏移量,规定数据从数组的指定位置开始写入,第三个参数表示要往硬盘中写入多少数据。

例子:读取文件和写入文件

import java.io.*; //导入I/O包中的类
class Test{
	public static void main(String args[]){
		FileInputStream fis = null;//声明输入流引用
		FileOutputStream fos = null;//声明输出流引用
		try{
			//生成输入流对象,定位文件
			fis = new FileInputStream("F:/Android/Java4Android/32/src/a.txt");
			//生成byte数组存取数据
			byte [] b = new byte[15];
			//调用read方法读取数据并返回数据的大小
			int bLen = fis.read(b,0,b.length);

			//生成输出流对象,生成文件
			fos = new FileOutputStream("F:/Android/Java4Android/32/src/b.txt");//文件不存在会自动生成
			//调用write方法写入数据
			fos.write(b,0,bLen);
		}
		catch(Exception e){
			System.out.println(e);
		}
	}
}

 

//打印byte数组的内容
for(int i = 0; i< b.length; i++){
	System.out.println(b[i]);
}

//还原成字符串
String s =new String (b);
s = s.trim();
//去掉字符串首尾空格和空字符
System.out.println(s);

  

  

Java当中的I/O的字节流的更多相关文章

  1. 第55节:Java当中的IO流-时间api(下)-上

    Java当中的IO流(下)-上 日期和时间 日期类:java.util.Date 系统时间: long time = System.currentTimeMillis(); public class ...

  2. 第54节:Java当中的IO流(中)

    Java当中的IO流(中) 删除目录 // 简书作者:达叔小生 import java.io.File; public class Demo{ public static void main(Stri ...

  3. 第53节:Java当中的IO流(上)

    Java当中的IO流 在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以用来解决字符串和基 ...

  4. 第39节:Java当中的IO

    Java当中的IO IO的分类 第一种分:输入流和输出流 第二种分:字节流和字符流 第三种分:节点流和处理流 节点流处理数据,处理流是节点流基础上加工的. IO中的重点: InputStream Ou ...

  5. Java当中的IO流-时间api(下)-上

    Java当中的IO流(下)-上 日期和时间 日期类:java.util.Date 系统时间: long time = System.currentTimeMillis(); public class ...

  6. Java当中的IO流(中)

    Java当中的IO流(中) 删除目录 import java.io.File; public class Demo{ public static void main(String[] args){ / ...

  7. Java当中的IO流(上)

    Java当中的IO流 在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以用来解决字符串和基 ...

  8. Java当中的内存分配以及值传递问题内存解析

    首先必须说明作为Java程序员对于内存只要有大致的了解就可以了,如果你对Java当中的某一个知识点在不需要分析内存分配过程的情况下可以掌握,那就大可不必去研究内存.如果你对知识点已经掌握,那么你应该把 ...

  9. java.io中流的操作:字节流、字符流

    java.io中流的操作:字节流.字符流(1)使用File类打开一个文件(2)通过字节流或字符流的子类指定输出的位置(3)进行读/写操作(4)关闭输入/输出 1.字节流:主要是byte类型数据,以by ...

随机推荐

  1. Flex4+BlazeDS+JAVA+MySql 构建J2EE工程 对用户信息进行管理实例

    要求 必备知识 本文要求基本了解 Adobe Flex编程知识和JAVA基础知识. 开发环境 MyEclipse10/Flash Builder4.6/Flash Player11及以上 演示地址 演 ...

  2. C# ref和out的区别

    首先:两者都是按地址传递的,使用后都将改变原来参数的数值. 其次:ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所 ...

  3. Google Protocol Buffer 协议

    1. Protocol Buffers 简介 Protocol Buffers (ProtocolBuffer/ protobuf )是Google公司开发的一种数据描述语言,类似于XML能够将结构化 ...

  4. 在 mvc 中使用下拉列表

    在mvc中经常会使用到下拉列表,以下以两种方式来实现,一种是以  @Html.DropDownList 扩展方法,一种是以 <select><option></optio ...

  5. HTML5--》details

    <details>是HTML5的新标签,用于描述文档或文档某个部分的细节. 目前只有 Chrome 和 Safari 6 支持 <details> 标签. 与 <summ ...

  6. 详解android.mk-2016.01.18

    1 Android.mk作用 当使用JNI开发时,我们需要创建一个native工程,Android.mk就是一个makefile的配置文件,帮助我们把编写的C/C++代码编译成动态或者静态的链接库. ...

  7. QTP操作论坛回复编辑框----webelement

    Set bp=browser("micclass:=browser","index:=0").page("micclass:=page") ...

  8. (笔记)angular material radio用法

  9. 学习使用LaTex排版文字输出为pdf(1)

    学习用latex写我的简历. 我在ubuntu环境下,先下载所需软件,命令百度就可以. 先创建一个a.tex,写上 \documentclass{article} \usepackage{CJK} \ ...

  10. SE11

        自省数据及表存储 2014年4月6日 21:37     类似JAVA反射的特性 SAP提供自省数据的机制 这样可以保证程序的灵活性和动态性     1.使用OO中的cl_abap_typed ...