Java IO类

    科技2025-05-31  40

    2020最新版 Java基础-IO框架 输入流:将<存储设备>中的内容读入到<内存>中。 输出流:将<内存>中的内容写入到<存储设备>中。 节点流:具有实际传输数据的读写功能。 过滤流:在节点流的基础之上增强功能。

    所有在java.io中的类都将相对路径名解释为以用户工作目录开始,通过下面代码来获取这个信息

    System.out.println(System.getProperty("user.dir")); //用户工作目录 io类的相对路径

    字节流:以字节为单位的流 字节流的父类 InputStream:字节输入流 OutputStream:字节输出流

    通过FileInputStream读取文件

    static void readone() throws IOException { FileInputStream file = new FileInputStream("src\\main\\resources\\application.xml"); System.out.println("file = " + file); int date = 0 ; while ((date=file.read())!=-1){ System.out.print( (char)date); } file.close(); }

    FileInputStream自定义缓冲数组

    static void readmore() throws IOException { FileInputStream file = new FileInputStream("src\\main\\resources\\asd.txt"); System.out.println("file = " + file); byte[] buf = new byte[1024] ; //缓冲数组 int count = 0 ; while ((count=file.read(buf))!=-1){ //将file文件读入到buf数组里 System.out.print(new String(buf,0,count)); //最后可能不是1024个byte } file.close(); }

    使用BufferedInputStream读取数据

    static void readbuffer() throws IOException { FileInputStream file = new FileInputStream("src\\main\\resources\\asd.txt"); BufferedInputStream bufferedInputStream = new BufferedInputStream(file); int date = 0 ; while ((date=bufferedInputStream.read())!=-1){ System.out.print( (char)date); } bufferedInputStream.close(); //file内部已经关了 }

    数据写入

    static void wirte() throws IOException { FileOutputStream fileOutputStream = new FileOutputStream("src\\\\main\\\\resources\\\\asd.txt",true); //true代表追加 String world = "hello world" ; fileOutputStream.write(world.getBytes()); fileOutputStream.close(); }

    文件复制

    static void filecopy() throws IOException { FileInputStream fileInputStream = new FileInputStream("C:\\Users\\xiaocai\\Pictures\\sadw20200427121533.png"); FileOutputStream fileOutputStream = new FileOutputStream("src\\main\\resources\\daw.png"); byte[] bytes = new byte[1024]; int count = 0 ; while ((count = fileInputStream.read(bytes))!=-1){ fileOutputStream.write(bytes,0,count); } fileInputStream.close(); fileOutputStream.close(); }

    序列化

    public class Student implements Serializable { //序列化的类要继承Serializable //判断类的serialVersionUID来验证版本一致性的 private static final long serialVersionUID = -2961257442669125983L ; String name ; transient int age ; //该属性不能序列化 同样静态属性也不能序列化 //constructor setter getter toString ....... } static void outobject() throws IOException { //序列化 对象写入文件中 FileOutputStream fileOutputStream = new FileOutputStream("src\\main\\resources\\aaa.bin"); ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream); Student zy = new Student("zy", 20); objectOutputStream.writeObject(zy); objectOutputStream.close(); }

    反序列化

    static void Inobject() throws IOException, ClassNotFoundException { FileInputStream fileInputStream = new FileInputStream("src\\main\\resources\\aaa.bin"); ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream); Object o = objectInputStream.readObject(); System.out.println("o = " + o); objectInputStream.close(); }

    文件操作

    File file = new File("qqqq.txt"); //只是创建个文件对象 System.out.println(file.toString()); /*文件创建*/ if (!file.exists()){ //如果文件不存在 就创建 boolean newFile = file.createNewFile(); System.out.println("newFile = " + newFile); } /*文件删除*/ boolean delete = file.delete(); System.out.println("delete = " + delete); /*文件夹创建*/ File dir= new File("aaa\\bbb\\ccc"); if (!dir.exists()){ //dir.mkdir() ;//单级 dir.mkdirs() ;//多级 System.out.println("create sucess"); } /*文件夹删除 注意只能是空目录*/ boolean deletedir = dir.delete(); System.out.println("deletedir = " + deletedir ); /*目录遍历*/ File dirlist= new File("C:\\"); String[] list = dirlist.list(); for (String name : list) { System.out.println("name = " + name ); } /*文件过滤*/ File filefilter = new File("C:\\Users\\xiaocai\\Pictures"); File[] files = filefilter.listFiles(new FileFilter() { public boolean accept(File pathname) { if (pathname.getName().endsWith(".jpg")) //如果文件名最后为.jgp return true; //返回文件 else return false;//false 不返回文件 } }); for (File name : files) { System.out.println(name); } /*遍历文件夹*/ static void listDir(File dir){ File[] files = dir.listFiles(); if (files!=null && files.length>0){ for (File f : files) { if (f.isDirectory()) listDir(f); //递归 else System.out.println(f); } } } /*递归删除文件夹*/ static void deleteDir(File dir){ File[] files = dir.listFiles(); if (files!=null && files.length>0){ for (File f : files) { if (f.isDirectory()) deleteDir(f); //递归 else System.out.println(f.delete()); } } dir.delete() ; //最后删除最外围的文件夹 }
    Processed: 0.010, SQL: 8