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. 【Unity Shaders】学习笔记——SurfaceShader(四)用纹理改善漫反射

    [Unity Shaders]学习笔记——SurfaceShader(四)用纹理改善漫反射 转载请注明出处:http://www.cnblogs.com/-867259206/p/5603368.ht ...

  2. Objective-C的内存管理

    一.Objective-C内存管理的对象 1. 值类型:比如int.float.struct等基本数据类型. 值类型会被放入栈中,在内存中占有一块连续的内存空间,遵循先进后出的原则,故不会产生碎片. ...

  3. zepto的clone方法于textarea和select的bug修复

    (function($) { Zepto.fn.clone = function() { var result = $.fn.clone.apply(this, arguments), oldText ...

  4. 用Java开发代理服务器

    基础知识 不管以哪种方式应用代理服务器,其监控HTTP传输的过程总是如下: 步骤一:内部的浏览器发送请求给代理服务器.请求的第一行包含了目标URL. 步骤二:代理服务器读取该URL,并把请求转发给合适 ...

  5. MSP430推荐网站

    http://www.amobbs.com/thread-5092914-1-1.html http://www.amobbs.com/thread-4701106-1-1.html

  6. 操作笔记:tomcat在正式环境

    1,一台服务器有两个容器,比如:jetty,tomcat. 出现问题: jetty启动的时候,tomcat就不能启动了. 此时,需要修改tomcat的配置文件:servler.xml <?xml ...

  7. 关于oracle中传过来的一个多id需要插入到数据库用,分格的存储过程

    create or replace procedure test ( jf_Id in nvarchar2, yf_id in nvarchar2 ) as v_length NUMBER := LE ...

  8. 使用cnpm搭建企业内部私有NPM仓库

    cnpm是企业内部搭建npm镜像和私有npm仓库的开源方案.它同时解决了现有npm架构的一些问题. 为什么企业需要私有NPM 主要有如下理由: 确保npm服务快速.稳定:对于企业来说,上线生产系统的时 ...

  9. pig命令行快捷键

    删除 ctrl + d 删除光标所在位置上的字符相当于VIM里x或者dl ctrl + h 删除光标所在位置前的字符相当于VIM里hx或者dh ctrl + k 删除光标后面所有字符相当于VIM里d ...

  10. 学生信息管理系统应用ios源码iPad版

    学生信息管理系统应用iPad版,该应用源码比较完整的,而且也很详细,这也是一款学校用的学生和老师管理系统,里面涉及到了很多ipad常用的控件,操作和数据存储. <ignore_js_op> ...