Java中IO流,输入输出流概述与总结
发布时间:2020-12-31 21:20:41 所属栏目:运营 来源:网络整理
导读:总结的很粗拙,往后时刻富饶了好好修改一下。 1:Java说话界说了很多类专门认真各类方法的输入可能输出,这些类都被放在java.io包中。个中, 全部输入流类都是抽象类InputStream(字节输入流),可能抽象类Reader(字符输入流)的子类; 而全部输出流都是抽象类O
list()获取某个目次下全部的文件可能文件夹: 1 package com.ningmeng; 2 3 import java.io.File; 4 5 public class FileTest { 6 7 public static void main(String[] args){ 8 File file=new File("D:/");//指定文件目次 9 String[] str=file.list();//获取指定目次下的全部文件可能文件夹的名称数组 10 for(String s : str){//增强for轮回遍历输出 11 System.out.println(s); 12 } 13 14 } 15 } 1 package com.ningmeng; 2 3 import java.io.File; 4 5 public class FileTest { 6 7 public static void main(String[] args){ 8 File file=new File("D:/");//指定文件路径 9 File[] f=file.listFiles();//获取指定目次下的全部文件可能文件夹的File数组 10 for(File fi : f){//增强for轮回遍历输出 11 System.out.println(fi); 12 } 13 14 } 15 }案例演示: 获取某种名目标文件好比获取某种后缀的图片,并输出文件名: 1 package com.ningmeng; 2 3 import java.io.File; 4 5 public class FileTest { 6 7 public static void main(String[] args){ 8 File file=new File("C:UsersbiehongliPicturesxuniji"); 9 String[] str=file.list(); 10 11 for(String s : str){ 12 if(s.endsWith(".jpg") || s.endsWith(".png")){//假如后缀是这种名目标就输出 13 System.out.println(s); 14 } 15 } 16 17 18 } 19 }下面演示获取文件夹下体面目次内里的文件获取(并没有完全获取子目次的子目次等等,仅仅获取了子一级目次): 1 package com.ningmeng; 2 3 import java.io.File; 4 5 public class FileTest { 6 7 public static void main(String[] args){ 8 File file=new File("C:UsersbiehongliPicturesCamera Roll"); 9 10 File[] f=file.listFiles(); 11 12 for(File fi : f){ 13 if(fi.isDirectory()){//判定假如是一个目次 14 String[] s=fi.list(); 15 for(String str : s){ 16 if(str.endsWith(".jpg")){ 17 System.out.println(str); 18 } 19 } 20 } 21 } 22 } 23 }A:文件名称过滤器的概述 public String[] list(FilenameFilter filter) public File[] listFiles(FileFilter filter) 1 package com.ningmeng; 2 3 import java.io.File; 4 import java.io.FilenameFilter; 5 6 public class FileTest { 7 8 public static void main(String[] args){ 9 File file=new File("C:UsersbiehongliPicturesCamera Roll"); 10 11 String[] str=file.list(new FilenameFilter() {//过滤器,匿名内部类 12 13 @Override 14 public boolean accept(File dir,String name) { 15 // TODO Auto-generated method stub 16 //System.out.println(dir);//获取文件的路径 17 //System.out.println(name);//获取文件的名字 18 File f=new File(dir,name); 19 return f.isFile() && f.getName().endsWith(".jpg"); 20 } 21 }); 22 for(String s : str){ 23 System.out.println(s); 24 } 25 26 } 27 }7:下面以一些字节输入输出流详细的案例操纵(操纵的时辰认清本身行使的是字节约照旧字符流): 留意:read()要领读取的是一个字节,为什么返回是int,而不是byte 字节输入流可以操纵恣意范例的文件,好比图片音频等,这些文件底层都是以二进制情势的存储的,假如每次读取都返回byte,有也许在读到中间的时辰碰着222221111;那么这22222111是byte范例的-1,我们的措施是碰着-1就会遏制不读了,后头的数据就读不到了,以是在读取的时辰用int范例吸取,假如22222111会在其前面补上;24个0凑足4个字节,那么byte范例的-1就酿成int范例的255了这样可以担保整个数据读完,而竣事标志的-1就是int范例FileInputStream的单个字节读取: FileOutputStream的单个字节写入: 1 package com.ningmeng; 2 3 import java.io.FileInputStream; 4 import java.io.FileOutputStream; 5 6 public class FileTest { 7 8 public static void main(String[] args) throws Exception{ 9 FileInputStream fis=new FileInputStream("aaa.txt"); 10 FileOutputStream fos=new FileOutputStream("bbb.txt",true); 11 //FileOutputStream()后头加true指文件后头可追加 12 13 int a=fis.read();//read()一次读取一个字节 14 System.out.println(a);//读取的一个字节输出 15 16 fos.write(101);//write()一次写一个字节 17 fis.close();//必然记得封锁流,养成好风俗 18 fos.close(); 19 } 20 }(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |