IO流是用户和java平台"交流"的重要途径之一。
分类java中IO流
按照流向可以分为A:输入流B:输出流
按照数据单元可以分为A:字符流B:字节流
按照数据连接方法A:节点流B:过滤流
A:字节输入流
B:字节输出流
C:字符输入流
D:字符输出流
数据输入指的是数据从外部输入到java内部,有字节输入流和字符输入流
注意:字节流用于视频声音照片等等数据,字符流一般用于纯文本的输入
通过代码介绍一下使用方法
import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.InputStream; import java.io.Reader; public class IOTest { public static void main(String[] args) throws Exception { //A:字节流读取文件信息 InputStream io=new FileInputStream(new File("AA.txt")); //1.字节输入流,先定义一个容器 byte[]b=new byte[1024]; //2.定义一个int类型的长度,判读读的长度 int len=-1; //3.使用循环读文件里的数据 while((len=io.read(b))!=-1) { String st = new String(b, 0, len); System.out.println(st); } //B:字符流读取信息 Reader r=new FileReader(new File("AA.txt")); //1:定义一个字符容器 char []c= new char[100]; //2:定义一个长度,用于判定容器中的数量 int l=-1; //3:循环读信息 while((l=r.read(c))!=-1) { String st2 = new String(c,0,l); System.out.print(st2); } } }数据的输出
数据的输出指的是将java中的数据输出到外部文件中
java输出流主要分为字节和字符两种
通过代码主要介绍一下
//因为字符输入流有个特别友好的类型(String)可直接写进去 byte[]bbb=new byte[100]; for(byte i=0;iIO规范化代码 io规范化主要指的是将这个流关闭,流两个关闭的版本
A:(老版本)不把异常抛出去,通过捕捉,将关闭写在finally里,因为finally里的代码一定是执行的
B:(新版本)同样是不抛异常,通过捕捉,将流写在try的括号里import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; public class IOTest { public static void main(String[] args) { //A:字节流读取文件信息 InputStream io = null; try { io = new FileInputStream(new File("AA.txt")); byte[]b=new byte[1024]; //2.定义一个int类型的长度,判读读的长度 int len=-1; //3.使用循环读文件里的数据 while((len=io.read(b))!=-1) { String st = new String(b, 0, len); System.out.println(st); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { io.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 新版本 try(InputStream io = new FileInputStream(new File("AA.txt"))) { byte[]b=new byte[1024]; //2.定义一个int类型的长度,判读读的长度 int len=-1; //3.使用循环读文件里的数据 while((len=io.read(b))!=-1) { String st = new String(b, 0, len); System.out.println(st); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }欢迎分享,转载请注明来源:内存溢出
评论列表(0条)