day08(File类 ,字节流)
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类 ,字节流)的更多相关文章
- java IO之 File类+字节流      (输入输出 缓冲流 异常处理)
		
1. File类
 - 第二十天File类、字节流
		
File类.字节流 File类 File类介绍 File:它是描述持久设备上的文件或文件夹的.只要是在Java程序中操作文件或文件夹肯定需要使用File类完成. File类构造方法 /* * File ...
 - JAVA IO分析一:File类、字节流、字符流、字节字符转换流
		
因为工作事宜,又有一段时间没有写博客了,趁着今天不是很忙开始IO之路:IO往往是我们忽略但是却又非常重要的部分,在这个讲究人机交互体验的年代,IO问题渐渐成了核心问题. 一.File类 在讲解File ...
 - IO流(File类,IO流的分类,字节流和字符流,转换流,缓冲流,对象序列化)
		
1.File类 File类可以在程序中 操作文件和目录.File类是通过建立File类对象,在调用File类的对象来进行相关操作的. 示例: public class Demo01 { public ...
 - Java基础14-缓冲区字节流;File类
		
作业解析 阐述BufferedReader和BufferedWriter的工作原理, 是否缓冲区读写器的性能恒大于非缓冲区读写器的性能,为什么,请举例说明? 答: BufferedReader对Rea ...
 - -1-4 java io   java流 常用流 分类  File类 文件 字节流  字符流  缓冲流  内存操作流 合并序列流
		
File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) ...
 - IO流--字符流与字节流--File类常用功能
		
IO流的常用方法: 1: 文件的读取和写入图解: 2:字节流: 读写文件的方法: 一般效率读取: 读取文件: FileInputStream(); 写数据: Fil ...
 - 关于Java的File类、字节流和字符流
		
一.File类: 在Windows下的路径分隔符(\)和在Linux下的路径分隔符(/)是不一样的,当直接使用绝对路径时,跨平台会报No Such file or diretory异常. File中还 ...
 - File类常用的方法与字节流类方法简介
		
File类常用的方法 获取功能的方法 public String getAbsolutePath() :返回此File的绝对路径名字符串. public String getPath() :将此Fil ...
 
随机推荐
- DateUtil日期处理
			
package com.zjx.util; import java.text.SimpleDateFormat; import java.util.Date; public class DateUti ...
 - Haskell语言学习笔记(53)Data.Sequence
			
Data.Sequence Prelude> import Data.Sequence as Seq Prelude Seq> :set -XOverloadedLists Prelude ...
 - 常见jsp跳转总结
			
这次做项目,用到几种不同的JSP跳转的方式,在此总结5中常用方法. 常用的跳转方式有以下几种: (1)href超链接标记,属于客户端跳转 (2)使用javascript完成,属于客户端跳转 (3)提交 ...
 - 使用UUID方法生成全球唯一标识
			
需要生成唯一字符串,如生成应用标识等,可以直接用java.util.UUID类实现. UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字, ...
 - Android笔记:RelativeLayout
			
RelativeLayout 又称作相对布局,也是一种非常常用的布局.和 LinearLayout 的排列规则不同,RelativeLayout 显得更加随意一些,它可以通过相对定位的方式让控件出现在 ...
 - 第八章 高级搜索树 (b2)B-树:结构
 - 【校招面试 之 C/C++】第18题 C++ 中的隐式转换以及explicit关键字
			
1.什么是隐式转换: 众所周知,C++的基本类型中并非完全的对立,部分数据类型之间是可以进行隐式转换的. 所谓隐式转换,是指不需要用户干预,编译器私下进行的类型转换行为.很多时候用户可能都不知道进行了 ...
 - HttpClient实战二:单线程和多线程连接池实例
			
为什么使用HTTP连接池? 随着系统架构风格逐渐向前后端分离架构,微服务架构转变,RestFul风格API的开发与设计,同时SpringMVC也很好的支持了REST风格接口.各个系统之间服务的调用大多 ...
 - java web 常用正则
			
什么是 RegExp? RegExp 是正则表达式(Regular expression)的缩写,作用是对字符串执行模式匹配. 通常用于格式验证.正则替换.查找子串等 各种编程语言的正则表达式基本相同 ...
 - spring中配置监听队列的MQ
			
一.spring中配置监听队列的MQ相关信息注:${}是读取propertites文件的常量,这里忽略.绿色部分配置在接收和发送端都要配置. <bean id="axx" ...