I/O是input/output的缩写,即输入输出端口。
从 文件、键盘、网络 等输入到java程序,再从java程序输出到 文件、显示器、网络等
分类:
1、输入流 和 输出流
2、字节流 和 字符流
3、节点流 和 处理流
核心方法:read、write
字节流例子:文件读取
//导入io包 import java.io.*; class Test { public static void main(String args[]){ //声明输入流引用 FileInputStream fis = null; try{ //生成输入流对象 fis = new FileInputStream("e://d/from.txt");//读取文件数据 byte [] buffer = new byte[10]; //生成一个比特类型的数组,长度10 fis.read(buffer,2,buffer.length-2); //存储,偏移量,读取数据长度,偏移量改变,后面也要跟着改,不然就会数组越界了
(整个数组才10,偏移了2个位置才开始,那最多也只剩下8个位置) //测试接收的数据 for(int i=0;i<buffer.length;i++){ System.out.println(buffer[i]); } } catch(Exception e){ System.out.println(e); } } }
字节还原字符串的方法:
String s = new String(arr);
System.out.println(s);
字节流例子:文件写入
import java.io.*; class Test { public static void main(String args[]){ //声明输出流的引用 FileOutputStream fout = null; try{ //生成输出流的对象 fout = new FileOutputStream("e://d/from.txt"); byte [] s = new byte[10]; s[0] = 't'; //写入数据,数组,偏移量,长度 fout.write(s,0,10); }catch(Exception e){ System.out.println(e); } }
使用完流,关闭节省资源,在catch后面再加上
注意流的关闭顺序是:先打开的后关,后打开的先关
finally{ try{ fout.close();
..
}catch(Exception e){ System.out.println(e); } }