【安卓学习笔记】JAVA基础-I/O系统

1.I/O操作的目标
从数据源当中读取数据,以及将数据写入到数据目的当中。
数据的来源和数据的目的地是多面的。
I/O的流向,输入和输出是相对java程序而言的:
输入:数据进入到程序
输出:数据从程序输出


IO当中的字节流的核心类

常用方法

/******************************************字节型*********************************/

InputStream(抽象类)

FileInputStream:从硬盘文件中读取数据

int read(byte[] b,int off,int len);
/*
参数
b:存储读取到的数据
off:读取起始的偏移量
len:读取一次最多读取的的长度
返回值
int:本次读取的长度
*/
OutputStream(抽象类)
FileOutputStream:向硬盘文件中写入数据
void write(byte[] b,int off,int len);
/*
参数
b:要写入文件的数据
off:写入起始的偏移量
len:写入数据的长度
*/

创建两个txt,from和to,在from中写入文本

编写如下代码:

import java.io.*;//导入java中IO所有的类
class Test{
	public static void main(String args[]){
		FileInputStream fis = null;//声明输入流引用
		FileOutputStream fos = null;//声明输出流引用
		try{
			//生成代表输入流的对象
			fis = new FileInputStream("d:/java/src/from.txt");
			//生成代表输出流的对象
			fos = new FileOutputStream("d:/java/src/to.txt");
			//生成一个字节数组
			byte [] buffer = new byte[100];
			//调用输入流对象的read方法,读取from.txt中的数据
			int temp_length =fis.read(buffer,0,buffer.length);
			//调用输出流对象的write方法,写入数据到to.txt			
			fos.write(buffer,0,temp_length);
			String s = new String(buffer););//将byte还原成字符
			//调用trim方法,将会去除掉这个字符串的首尾空格和空字符
			//如"    abc  def  " 使用trim之后将变成"abc  def"
			s.trim();
			
			System.out.println(s);//打印出来
		}
		catch(Exception e)
		{
			System.out.println(e);
		}
	}
}
运行结果:
D:\JAVA\src>java Test
abcd

在使用fis.read(buffer,0,buffer.length);的时候要注意

偏移量和读取长度之和不能超过buffer数组的最大长度,off的偏移量指的是从buffer中的第几个位置开始存储,假如说buffer最大100,从第五个开始存,那么读取的长度就不能是100而是95.


By Urien 2018年4月3日 08:39:22

猜你喜欢

转载自blog.csdn.net/qq997758497/article/details/79796859