File类

  构造方法

    File(String path);

    FIle(String parent, String child);

       File(File parent, String child)

  功能:

    创建功能    boolean createNewFile();

              删除功能   boolean delect();

        判断功能   返回值为boolean     

         判断是否为绝对路径  isAbsolute();

         判断是否为文件夹     isdirectory();

         判断是否为文件        isFile();

    获取功能

        //获取文件绝对路径

       File getAbsoluteFile();

       String  getAbsolutePath();

        //获取传递路径

          String getPath();

        //获取父路径

        String  getParent();

        //获取文件大小

          long  length();

public class FileTest {
public static void main(String[] args) throws IOException {
File file1=new File("b.txt");
long l = file1.length();
long m = file1.lastModified();
Date d=new Date(m);
System.out.println(d.toLocaleString());
System.out.println(l);
}
}

  

输出结果:
2017-9-2 13:39:34
3

  

        //获取文件最后一次的修改时间

          long lastModified();  返回值为毫秒值

        

public class FileTest {
public static void main(String[] args) throws IOException {
File file1=new File("b.txt");
File file2=new File("a\\b.txt");
File file3=new File("C:\\a.txt");
//获取绝对路径
System.out.println("获取绝对路径");
File absoluteFile1= file1.getAbsoluteFile();
File absoluteFile2 = file2.getAbsoluteFile();
File absoluteFile3 = file3.getAbsoluteFile();
String absolutePath1 = file1.getAbsolutePath();
String absolutePath2 = file2.getAbsolutePath();
String absolutePath3 = file3.getAbsolutePath();
System.out.println(absoluteFile1);
System.out.println(absoluteFile2);
System.out.println(absoluteFile3);
System.out.println(absolutePath1);
System.out.println(absolutePath2);
System.out.println(absolutePath3);
System.out.println("------------");
//获取传递路径
System.out.println("获取传递路径");
String path1 = file1.getPath();
String path2 = file2.getPath();
String path3 = file3.getPath();
System.out.println(path1);
System.out.println(path2);
System.out.println(path3);
System.out.println("------------");
//获取父路径(按照传递进去的文件路径获取的)
System.out.println("获取父路径(按照传递进去的文件路径获取的)");
String parent1 = file1.getParent();
String parent2 = file2.getParent();
String parent3 = file3.getParent();
System.out.println(parent1);
System.out.println(parent2);
System.out.println(parent3);
	}
}

  

输出结果:
获取绝对路径
D:\java\myeclipse\ITEM\JYBDemo\b.txt
D:\java\myeclipse\ITEM\JYBDemo\a\b.txt
C:\a.txt
D:\java\myeclipse\ITEM\JYBDemo\b.txt
D:\java\myeclipse\ITEM\JYBDemo\a\b.txt
C:\a.txt
------------
获取传递路径
b.txt
a\b.txt
C:\a.txt
------------
获取父路径(按照传递进去的文件路径获取的)
null
a
C:\

  

字节流   (和字符流的用法一样,字符流只能读文本文件。)

    输出字节流(写数据) OutputStream(抽象类)----FileOutputStream(实现类)

    输入字节流(读数据) InputStream(抽象类)-----FileInputStream(实现类)

      eg:  复制文件

public class FileTest {
public static void main(String[] args) throws IOException {
FileInputStream fis=new FileInputStream("b.txt"); //读文件
FileOutputStream fos=new FileOutputStream("a\\b.txt");//写文件
int len;
byte[] bt=new byte[1024*1024*5];//5M
while ((len=fis.read(bt))!=-1) {
fos.write(bt,0,len);
}
fis.close();
fos.close();
}
}

      eg02  复制文件夹 

public class FileCopyNew {
public static void main(String[] args) throws IOException {
String src="D:\\java\\myeclipse\\ITEM\\JYBDemo\\a";//d:\\str 要复制的文件夹路径
String dsc="D:\\java\\myeclipse\\ITEM\\JYBDemo\\aa";//c:\\g 要复制到的文件夹路径
copy(dsc,src);
} private static void copy(String dsc, String src) throws IOException {
File df=new File(dsc);//目的
File sf=new File(src);//源文件夹
String s=df.getAbsolutePath()+"\\"+sf.getAbsolutePath().substring(sf.getParent().length());
File file=new File(s);
if (sf.isDirectory()) {
file.mkdir();//给目的文件夹创建文件夹
File[] files = sf.listFiles();
for (File file2 : files) {
copy(s, file2.toString());
}
}else{
//file.createNewFile();
chuanShu(sf.getAbsolutePath(),file.toString());
} }
private static void chuanShu(String des,String src) throws IOException {
FileInputStream fis=new FileInputStream(des);
FileOutputStream fos=new FileOutputStream(src);
int len;
byte[] b=new byte[1024*1024*50];
while ((len=fis.read(b))!=-1) {
fos.write(b,0,len);//一次读一个字节数组
}
fis.close();
fos.close();
} }

  

 过滤器

public class MyFileFilter implements FileFilter{//自定义过滤器

	@Override
public boolean accept(File f) {
if (f.getName().endsWith(".java")) {
return true;
}
if (f.isDirectory()) {
return true;
}
return false;
}
}

  

public class FileTest {
public static void main(String[] args) throws IOException {
File f=new File("a");
method(f);
}
private static void method(File f) {
File[] Files = f.listFiles(new MyFileFilter()); for (File file : Files) {
if (file.isDirectory()) {
method(file);
}else{
System.out.println(file);}//输出文件类型为java文件
}
}
}

  

  

day08(File类 ,字节流)的更多相关文章

  1. java IO之 File类+字节流 (输入输出 缓冲流 异常处理)

    1. File类

  2. 第二十天File类、字节流

    File类.字节流 File类 File类介绍 File:它是描述持久设备上的文件或文件夹的.只要是在Java程序中操作文件或文件夹肯定需要使用File类完成. File类构造方法 /* * File ...

  3. JAVA IO分析一:File类、字节流、字符流、字节字符转换流

    因为工作事宜,又有一段时间没有写博客了,趁着今天不是很忙开始IO之路:IO往往是我们忽略但是却又非常重要的部分,在这个讲究人机交互体验的年代,IO问题渐渐成了核心问题. 一.File类 在讲解File ...

  4. IO流(File类,IO流的分类,字节流和字符流,转换流,缓冲流,对象序列化)

    1.File类 File类可以在程序中 操作文件和目录.File类是通过建立File类对象,在调用File类的对象来进行相关操作的. 示例: public class Demo01 { public  ...

  5. Java基础14-缓冲区字节流;File类

    作业解析 阐述BufferedReader和BufferedWriter的工作原理, 是否缓冲区读写器的性能恒大于非缓冲区读写器的性能,为什么,请举例说明? 答: BufferedReader对Rea ...

  6. -1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流

      File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) ...

  7. IO流--字符流与字节流--File类常用功能

    IO流的常用方法: 1: 文件的读取和写入图解: 2:字节流: 读写文件的方法: 一般效率读取: 读取文件:        FileInputStream(); 写数据:            Fil ...

  8. 关于Java的File类、字节流和字符流

    一.File类: 在Windows下的路径分隔符(\)和在Linux下的路径分隔符(/)是不一样的,当直接使用绝对路径时,跨平台会报No Such file or diretory异常. File中还 ...

  9. File类常用的方法与字节流类方法简介

    File类常用的方法 获取功能的方法 public String getAbsolutePath() :返回此File的绝对路径名字符串. public String getPath() :将此Fil ...

随机推荐

  1. 迷你MVVM框架 avalonjs 学习教程21、双向绑定链

    avalon的双向绑定机制,是通过一条依赖链实现.此依赖链最底层是监控属性.监控数组,中层是计算属性.监控函数,再上点是求值函数,最上层是视图刷新函数. 所谓计算属性,监控属性,监控函数属性,我们改变 ...

  2. oracle表属性

    1. PCTFREE 要形容一个 BLOCK 的运作,我们可以把一个 BLOCK 想成一个水杯.侍者把水倒入放在我们面前的水杯,要多满呢,我们要求他倒 9 分满好了,这时候 PCTFREE 代表着设定 ...

  3. IRanges package

    1)介绍 在分析序列时,我们通常对特定的连续子序列感兴趣. 例如,a矢量可以被认为是按字母顺序排列的小写字母序列. 我们将第一个五个字母(a到e)称为连续的子序列,而仅包含元音的子序列不会是连续的. ...

  4. IDEA artifacts Web Application:Exploded Web Application:Archive

    首先,artifacts是maven中的一个概念,表示项目/modules如何打包,比如jar,war,war exploded,ear等打包形式,一个项目或者说module有了artifacts 就 ...

  5. https 证书传递、验证和数据加密、解密过程解析

    我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取.所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议. HTTPS简介 HTTPS其实是有两部分组成:HTTP + SSL ...

  6. SO\PR回写的数据如下

    insert into OUT_ORDER_RES ---JAVA FOR PR ) as LGORT ,'SAPRFC' as ERNAM,out_pr.due_datetime,out_pr.so ...

  7. Cause: org.xml.sax.SAXParseException; lineNumber: 45; columnNumber: 62; 元素内容必须由格式正确的字符数据或标记组成。

    三月 09, 2018 12:13:39 下午 org.apache.catalina.core.StandardContext listenerStart严重: Exception sending ...

  8. 97. Interleaving String (String; DP)

    Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example,Given:s1 = ...

  9. swift - VFL

    1.VFL语法总结: //(1)“H”表示水平方向,“V”表示垂直方向 //(2)“|”表示父视图的边界 //(3)“[]”表示这是一个视图UIView的子类,可以组合多个条件,条件用"() ...

  10. php Pthread 多线程 (二) Worker和Threaded

    <?php //Worker是具有持久化上下文(执行环境)的线程对象 //Worker对象start()后,会执行run()方法,run()方法执行完毕,线程也不会消亡 class MySqlW ...