首页 > 技术文章 > Java常用基本类库总结2

zhuchaoli 2019-01-24 21:47 原文

  • 1、File类的重要方法(Java中文件、文件夹都用File类表示)

    构造函数:

public File(String pathname);//根据指定的路径创建File对象。
public File(String parent, String child);//根据指定的父文件夹和子文件或者文件夹创建File对象
public File(File parent, String child);//根据指定的父文件夹对象和子文件或者文件夹创建File对象

    判断类型:

boolean isDirectory();//是文件夹
boolean isFile();//是文件

    如果是文件夹:

boolean mkdir();//创建指定的目录,如果存在,就不创建。
boolean mkdirs();//创建指定的目录,如果存在,就不创建。这个时候,如果父目录不存在,它也会自动创建。

 

boolean delete();//删除这个文件或者文件夹。如果你删除的文件夹下还有内容,那么,必须先把所有内容删除完毕后,再删除文件夹。直接删除,不会保存到回收站。
boolean exists();//判断file对象是否存在
boolean canRead();//判断file对象是否可读
boolean canWrite();//判断file对象是否可写
String getAbsolutePath();//获取绝对路径
String getPath();//获取相对路径
String getName();//文件名称
long length();//文件大小,单位是字节
long lastModified();//上次修改时间的毫秒值。
public static File[] listRoots();//列出可用的系统文件根目录
public String[] list();//返回的是指定目录下所有文件或者文件夹的名称数组
public File[] listFiles();//返回的是指定目录下所有文件或者文件夹对象数组
  • 2、FileInputStream和FileOutputStream的文件复制的案例
public static void copy(InputStream inputStream,OutputStream outputStream,int bufferSize) throws IOException {
        if(inputStream == null) {
            throw new IllegalArgumentException("inputStream不能为null");
        }
        if(outputStream == null) {
            throw new IllegalArgumentException("outputStream不能为null");
        }
        if(bufferSize <= 0) {
            throw new IllegalArgumentException("bufferSize不能小于0");
        }
    
        byte[] buffer = new byte[bufferSize];
        int len = 0;
        while((len = inputStream.read(buffer)) > 0) {
            outputStream.write(buffer,0,len);
        }
}
  • 3、BufferedWriter及关闭顺序问题

    注意关闭的顺序:如果先关闭Stream,那么Writer就可能还没有把缓冲的数据写入,那只能强制writer.flush

    应该先关闭Writer(关闭之前把没有写入的自动flush写入)这样就不用手动flush,Stream关闭之后就写入不了东西了

    先关闭依赖的、再关闭被依赖的:BufferedWriter→OutputStreamWriter→OutputStream

  • 4、Properties配置文件的读取

    配置文件的格式:

ServerIP=192.168.1.99
UserName=yzk
Password=123
public static void main(String[] args) {
        Properties properties = new Properties();
        try (InputStream inputStream = PropertiesTest.class.getClassLoader().getResourceAsStream("com/rupeng/test/p.properties");) {
            properties.load(inputStream);
            String ip = properties.getProperty("ip");
            String usename = properties.getProperty("username", "zcl");

            System.out.println(ip);
            System.out.println(usename);
        } catch (IOException e) {
            e.printStackTrace();
        }
}

推荐阅读