java io总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java io总结相关的知识,希望对你有一定的参考价值。

这篇文章思路还不错,原文链接:http://blog.csdn.net/yczz/article/details/38761237

总结一下java io,记录自己的学习过程

首先看图(这只是io的一部分,查看API会发现比这庞大很多)

技术分享

一 java io开始

io就是指流,流是从文件开始,相关处理类是FIle类

package com.shangcg.io;

import java.io.File;

/**
 * File类简述(只是简述常用,并非全部)
 * 1 File类有4个public的构造函数
 *         new file(String)
 *         new file(String,String)
 *         new file(File,String)
 *         new file(URI)
 * 2 创建方法
 *      1.boolean createNewFile() 不存在返回true 存在返回false
        2.boolean mkdir() 创建目录
        3.boolean mkdirs()创建多级目录
   3 删除方法
        1.boolean delete()
        2.boolean deleteOnExit() 文件使用完成后删除
   4 判断方法
        1.boolean canExecute()判断文件是否可执行
        2.boolean canRead()判断文件是否可读
        3.boolean canWrite() 判断文件是否可写
        4.boolean exists() 判断文件是否存在
        5.boolean isDirectory() 
        6.boolean isFile()
        7.boolean isHidden()
        8.boolean isAbsolute()判断是否是绝对路径 文件不存在也能判断
    5 获取方法
        1.String getName()
        2.String getPath()
        3.String getAbsolutePath()
        4.String getParent()//如果没有父目录返回null
        5.long lastModified()//获取最后一次修改的时间
        6.long length()
        7.boolean renameTo(File f)
        8.File[] listRoots()//获取机器盘符
        9.String[] list() 
        10.String[] list(FilenameFilter filter)
 *
 */
public class FileDemo {

     public static void main(String[] args) {  
           
            createFile();  
        }  
       
      /** 
       * 文件处理示例 
       */  
      public static void createFile() {  
        File f=new File("E:/电脑桌面/jar/files/create.txt");  
        try{  
           f.createNewFile();  //当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。  
           System.out.println("该分区大小"+f.getTotalSpace()/(1024*1024*1024)+"G");//返回由此抽象路径名表示的文件或目录的名称。  
           f.mkdirs();  //创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。  
           System.out.println("文件名  "+f.getName());  //  返回由此抽象路径名表示的文件或目录的名称。  
           System.out.println("文件父目录字符串 "+f.getParent());// 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。  
        }catch (Exception e) {  
            e.printStackTrace();  
        }  
      }  
}

 

二 字节流(通常用于图片、音频等处理)

由开头图片可知

InputStream这个抽象类是所有基于字节的输入流的超类,OutputStream这个抽象类是所有基于字节的输出流的超类

package com.shangcg.io;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * InputStream简述
 * 
 *     1 读入相关方法:读入相关的方法是这个类的核心方法。有3种重载的形式
 *         1 int read() 读取流的下一个字节,到达流末尾返回-1
 *         2 int read(byte b[]) 
 *         3 int read(byte b[], int off, int len)
 *
 *    2 int available()读入(调用read)或者跳过(skip)之前先探测一下有多少可用字节
 *    3 long skip(long n) 跳过当前流的n个字节,返回实际跳过的字节数
 *    4 void mark(int readlimit)用于在流的当前位置做个标记,参数readLimit指定这个标记的“有效期“
 *    5 void reset()用于重定位到最近的标记。如果在这之前mark方法从来没被调用,或者标记已经无效,则抛出IOException
 *    6 boolean markSupported()检测当前流对象是否支持标记。是返回true。否则返回false
 *    7 void close()关闭当前流,释放与该流相关的资源,防止资源泄露
 *
 */
public class InputStreamDemo {
    
    public static void main(String[] args) throws IOException{
        
        /**available演示开始*/
        /**简述:这个方法通常不单独使用,通常在在读入流之前进行调用检测可读字节数*/
        InputStream is = null;  
        try {  
            is = new FileInputStream("D:/test.txt");  
            System.out.println("available: " + is.available());  
            
        } finally {  
            if (is != null) {  
                is.close();  
            }  
        }  
        /**available演示结束*/
        
        /**read()演示开始*/
        /**简述:读取输入流的下一个字节,返回一个0-255之间的int类型整数,到达流的末端,返回-1*/
        try {
            is = new FileInputStream("D:/test.txt");  
            int i;  
            while ((i = is.read()) != -1) {  
                //此处i为字符对应的ascii十进制数字,需要转化char,不信去掉试试
                System.out.println("out: " + (char)i);  
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {  
            if (is != null) {  
                is.close();  
            }  
        }   
        /**read演示结束*/
    }

}

未完明日补充

 

以上是关于java io总结的主要内容,如果未能解决你的问题,请参考以下文章

201621123062《java程序设计》第九周作业总结

Java进阶之光!2021必看-Java高级面试题总结

经验总结:Java高级工程师面试题-字节跳动,成功跳槽阿里!

python常用代码片段总结

BootStrap有用代码片段(持续总结)

Java习惯用法总结