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 ...
随机推荐
- Rust语言学习笔记(4)
Variables and Mutability(变量和可变性) 变量声明有三种:不变量(运行期的常量),变量以及(编译期的)常量. 变量可以重复绑定,后声明的变量覆盖前面声明的同名变量,重复绑定时可 ...
- c++实现扫雷(坐标)
昨天在观察贪食蛇的代码时,看到了有如何实现扫雷的c++代码,觉得挺有趣,今天便又试了一下 #include <ctime> #include <cstdlib> #includ ...
- HTML 练习 做简历表
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 神龟快跑,2016做的一款UWP游戏
神龟快跑,2016做的一款UWP游戏, 实际是H5页面, 用LAYA转AS3得到的 安装地址 https://www.microsoft.com/zh-cn/store/p/神龟快跑/9nblggh4 ...
- virtualbox Linux与Windows共享文件
安装virtualbox增强功能 在Windows下新建文件用于共享,点设置->共享文件夹->添加共享文件,制定路径和名称(名称用于Linux中挂载使用)(选择固定分配) 在Linux中m ...
- JAVA知识积累 给HttpClient添加Socks代理
本文描述http client使用socks代理过程中需要注意的几个方面:1,socks5支持用户密码授权:2,支持https:3,支持让代理服务器解析DNS: 使用代理创建Socket 从原理上来看 ...
- XAMPP下apache部署网站,多个虚拟机(空间)配置
之 前在 Mac 下一直使用 MAMP 搭建本地 php 环境,因为其强大的组合配置以及方便的 UI 操作.因为公司的电脑是 Windows 的,有时候需要搭建 php 环境来调试一些小东西方便自己 ...
- OC 线程操作3 - NSOperation 实现线程间通信
#import "ViewController.h" @interface ViewController () /** 图片 */ @property (weak, nonatom ...
- 批量去重URL地址并剔除打不开网址
#coding=utf-8 import os import httplib import socket dictlist ={}; def ReadHost(): hosts = []; obn = ...
- golang实现任务分发处理
package main import ( "flag" "fmt" "os" "log" "net/http ...