IO流技术

  概念:input - output 输入输出流:

  输入:将文件读到内存中;

  输出:将文件从内存中写出到其他地方

  作用:主要就是解决设备和设备之间的数据传输问题。

File :文件类的使用十分重要

(一)file的构造方法

     public static void test1(){

         //三种拼接路径方式
//1.直接拼接
File filePath = new File("C:\\123\\aaa");
System.out.println("是否存在文件夹--"+filePath.exists()); //2.先拼接根路径,在组合子路径
File parentPath = new File("C:\\123\\aaa");
File childPath = new File(parentPath,"bb.txt");
System.out.println("是否存在文件夹--"+childPath.exists()); //3.根路径和子路径使用逗号隔开
File filePath2 = new File("C:\\123\\aaa","bb.txt");
System.out.println("是否存在文件--"+filePath2.exists()); }

----------------------------------

(二)基本方法

 public static void test2() throws IOException{

         //1,.getAbsolutePath()  获取当的本地路径
File file = new File("");
System.out.println("当前java工程的本地绝对路径:"+file.getAbsolutePath());
System.out.println("是否存在文件夹--"+file.exists()); //2,.mkdir() 创建文件夹
File dirCreatePath = new File("E:\\abc");
System.out.println("文件夹是否创建成功--"+dirCreatePath.mkdir()); File dirCreatePaths = new File("E:\\abc\\ddd");
System.out.println("文件夹是否创建成功--"+dirCreatePaths.mkdirs()); //3,.createNewFile(); 指定路径创建一个文件,
File fileCreatePath = new File("E:\\abc\\123.txt");
File fileCreatePath = new File("E:\\abc\\456.txt");
System.out.println("是否创建成功"+fileCreatePath.createNewFile()); //4,oldFileNamePath.renameTo(fileNewNamePath) 重命名
//(1)方式一
File fileName = new File("E:\\abc\\456.txt");
if(fileName.exists()){
File fileNewName = new File("E:\\abc\\666.txt");
System.out.println("重命名是否成功--"+fileName.renameTo(fileNewName));
}else{
System.out.println("重命名失败!");
} //(2)方式二
File oldFile = new File("E:\\abc\\666.txt");
System.out.println("重命名是否成功--"+oldFile.renameTo(new File("E:\\abc\\888.txt"))); //(3),更换存储文件夹(或者存储盘)
File oldFile = new File("E:\\abc\\888.txt");
System.out.println("更换存储文件夹是否成功--"+oldFile.renameTo(new File("E:\\abc\\ddd\\888.txt"))); //5,(1)delete(); 删除文件或者 空 的文件夹
File fileDelete = new File("E:\\abc\\123.txt");
System.out.println("是否成功删除--"+fileDelete.delete()); //(2)deleteOnExit(); 在jvm退出时候删除
File fileDeleteOnExit = new File("E:\\abc\\ddd\\888.txt");
System.out.println("是否成功删除--"+fileDeleteOnExit.deleteOnExit()); for(int i = 0;i<=10000;i++){
if(i==10000){ //jvm退出后再执行 deleteOnExit()
System.out.println("jvm 已退出!");
}
} }

----------------------------------

(三)判断方法

     //判断方法
// isFile() 判断是不是文件(是,则返回 true)
// isDirectory() 判断是不是文件夹(是,则返回true)
// isHidden() 判断是不是隐藏文件或文件夹(是,则返回true)
// isAbsolute() 判断是不是绝对路径(是,返回true) public static void test3(){
File file = new File("E:\\abc\\ggg\\hhh.txt");//文件中
File file2 = new File("E:\\abc\\ggg");
if(file2.exists()){
System.out.println("是文件?"+file.isFile());
System.out.println("2是文件夹?"+file2.isDirectory());
System.out.println("2是隐藏文件?"+file2.isHidden());
System.out.println("是绝对路径?"+file.isAbsolute());
System.out.println("2是绝对路径?"+file2.isAbsolute());
}
}

----------------------------------

(四)获取方法

     //获取方法
// getName() 获取文件名字(路径最后分隔符后面的名称)
// getPath() 获取路径
// length() 获取文件容量大小
// getParent() 获取文件或文件夹的父类路径
// getAbsolutePath() 获取绝对路径
// lastModified() 获取文件最后修改的时间戳(毫秒) public static void test4(){
File file = new File("E:\\abc\\ggg\\hhh.txt");
if(file.exists()){
System.out.println("文件名称--"+file.getName());
System.out.println("文件路径--"+file.getPath());
System.out.println("文件绝对路径--"+file.getAbsolutePath());
System.out.println("文件大小--"+file.length());
System.out.println("文件的父类目录--"+file.getParent());
System.out.println("文件路径最后修改时间(毫秒)--"+file.lastModified()); //将毫秒转为日期
long time = file.lastModified();
Date date = new Date(time);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("文件路径最后修改时间(毫秒)--"+dateFormat.format(date)); }else {
System.out.println("不存在");
} }

-----------------------------------

(五)对文件的操作

     //文件夹的操作
static int sumByte = 0;
public static void test5(){ //【1】获取盘符,返回数组(不需要new)
File[] fileRoots = File.listRoots();
for(File fileRoot : fileRoots){
System.out.println("本机的磁盘:"+fileRoot);
} //【2】获取文件夹的所有文件数组
//(1)创建路径
File filePath = new File("E:\\IT学习大纲"); //(2)将路径里的文件及文件夹放到文件类数组中
File[] files = filePath.listFiles(); System.out.println("IT学习大纲:");
//(3)将文件数组遍历出来
for(File file1Child : files){ //(4)判断为文件夹则直接打印,如果是文件则打印名字并计算容量大小
if(file1Child.isDirectory()){
System.out.println("\n--"+file1Child.getName()); //(5)依次嵌套遍历。【也可以使用递归调用的方法来一层一层的遍历出下一级的文件或文件夹】
File[] file2 = file1Child.listFiles();
for(File file2Child : file2){
if(file2Child.isDirectory()){ System.out.println("-- --"+file2Child.getName()); //(6)
File[] file3 = file2Child.listFiles();
for(File file3Child : file3){
if(file3Child.isDirectory()){
System.out.println("-- -- --"+file3Child.getName()); }else{
System.out.println("-- -- -->"+file3Child.getName()+"\t"+file3Child.length()+"bt");
sumByte += file3Child.length();
} }
}else{
System.out.println("-- -->"+file2Child.getName()+"\t"+file2Child.length()+"bt");
sumByte += file2Child.length();
} } }else{
System.out.println("-->"+file1Child.getName()+"\t"+file1Child.length()+"bt");
sumByte += file1Child.length();
}
} System.out.println("文件的总容为:"+sumByte); } //【3】查找文件 需要定义一个接口类
public static void test6(){
File file = new File("E:\\IT学习大纲");
System.out.println(file.exists());
String[] strings = file.list(new MyFilter()); for(String string : strings){
System.out.println(string);
}
} //查找文件的过滤器
// class MyFilter implements FilenameFilter{
//
// @Override
// public boolean accept(File dir, String name) {
// // TODO Auto-generated method stub
//
// //设置过滤思路 (这里比较后缀名Java)
// //(1)方法一
// //name = name.substring(name.lastIndexOf("."));
// //return ".java".equals(name);
//
// //(2)方法二
// //return name.contains("java");
//
// //(3)方法三
// return name.endsWith("java");
// }
// }

陌陌说:

  数据是永久保存到本地,数据保存到磁盘上是以文件的形式保存的

  关于目录分格符:

    Windows系统上的目录分隔符:“\”

    Linux系统上的分隔符:“/”

    注意:   在windows上“\”和“/”都可以作为目录分隔符,

        如果使用的是“\”,目录分隔符就是“\\”;

        如果你使用了“/”,那么分隔符就直接是“/”

java IO流技术 之 File的更多相关文章

  1. Java IO流中的File类学习总结

    一.File类概述 File类位于java.io包中,是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹. File类有多种重载的构造方法.File类保存文件或目录的各种 ...

  2. Java IO流操作(III)——File类&案例一:输出制定目录下所有java文件名(包含子目录)&案例二:删除指定的目录(包含子目录)

    1. File常用的构造 File file = new File("字符串路径"); File f = new File("D:\\a\\b.txt"); F ...

  3. Java基础-IO流对象之File类

    Java基础-IO流对象之File类 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.IO技术概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下 ...

  4. Java IO流详解(二)——File类

    在上一章博客中简单的介绍了Java IO流的一些特征.也就是对文件的输入输出,既然至始至终都离不开文件,所以Java IO流的使用得从File这个类讲起. File类的描述:File类是文件和目录路径 ...

  5. java IO流 (一) File类的使用

    1.File类的理解* 1. File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)* 2. File类声明在java.io包下* 3. File类中涉及到关于文件或文件目录的创建.删除.重 ...

  6. JAVA.IO流学习笔记

    一.java.io 的描述 通过数据流.序列化和文件系统提供系统输入和输出.IO流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...

  7. Java基础17:Java IO流总结

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  8. Java IO 流总结篇

    1. 写在前面的话 I/O ,I 是 Input (输入)的缩写,O是Output (输出) 的缩写,众所周知,人与人之间想要沟通交流,就需要讲彼此都能听懂的语言,比如大家都统一说英语. 人类如果想和 ...

  9. Java IO流学习

    Java IO流学习 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是 ...

随机推荐

  1. hdu - 1627 Krypton Factor (dfs)

    http://acm.hdu.edu.cn/showproblem.php?pid=1627 给定 n 和 L 找出第n个范围在0-L之内的字符串,字符串要求没有相邻的子串是相同的. 按照格式输出. ...

  2. 洛谷——P1832 A+B Problem(再升级)

    P1832 A+B Problem(再升级) 题目背景 ·题目名称是吸引你点进来的 ·实际上该题还是很水的 题目描述 ·1+1=? 显然是2 ·a+b=? 1001回看不谢 ·哥德巴赫猜想 似乎已呈泛 ...

  3. hdu5618(cdq分治求三维偏序)

    题意:给n(n<=100000)个点,坐标为(xi,yi,zi)(1<=xi,yi,zi<=100000),定义一个点A比一个点B小,当且仅当xA<=xB,yA<=yB, ...

  4. js 计算获取鼠标相对某个点的移动旋转角度

    // 旋转角度 function getAngle(cen, first, second) { // cen : 中心点 [0,0] // first : 开始点 [1,3] // second : ...

  5. anaconda是个啥?

    Anaconda具有跨平台(win/mac/linux).包管理(类似于pip).环境管理(类似于virtualenv)的特点,因此很适合快速在新的机器上部署Python环境 Anaconda利用工具 ...

  6. AutoCAD如何设置线宽

    一般要求粗实线粗实线0.4,细实线0.2mm. 1 先打开图层特性管理器,新建一个图层,专门放粗实线(我起名叫"我的粗实线",颜色设置为紫色,线宽为0.4mm),此前的乱七八糟的图 ...

  7. 网上Unused Index Script 脚本的问题

    曾经使用过网上下载的脚本查询没有使用过的Index比方SQL SERVER – 2008 – Unused Index Script – Download,事实上如今看起来这个脚本是有一些问题. 脚本 ...

  8. Java对话框总结

    总结起来非常easy: 1,对话框类型:消息.确认,选项.输入 2,选择图标:错误,信息.警告.问题,无或者自己定义 3,选择消息:字符串,图标.自己定义组件或者他们的集合 4.对于确认对话框,选择选 ...

  9. 在Unity中接入Xbox360手柄

    提要 本文主要介绍了怎样在Unity中接入Xbox360的手柄. 当我们调Input.GetAxis("Horizontal"),我们调了什么 Unity中全部关于输入的设置都在E ...

  10. [git push] rejecteded 问题的解决方法

    错误信息: hint: Updates were rejected because a pushed branch tip is behind its remote hint: counterpart ...