java 中 FIle 和 流的简单分析

File类

简单File 常用方法

创建一个File 对象,检验文件是否存在,若不存在就创建,然后对File的类的这部分操作进行演示,如文件的名称、大小等

//创建一个File 对象,检验文件是否存在,若不存在就创建然后对File
package wfu;

import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        System.out.println("Please input the file's name");
        Scanner scanner = new Scanner(System.in);
        //从控制台输入文件路径名字
        String pathName = scanner.next();

        //根据路径的名字创建一个Filea 对象
        File file = new File(pathName);//从这里可以看出,File 这个方发中的参数是一个字符串
        //如果文件不存在,就创建一个
        if(!file.exists())
        {
            try {
                file.createNewFile();

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        System.out.println("文件是否存在:"+file.exists());
        System.out.println("是文件吗:"+file.isFile());
        System.out.println("是目录吗:"+ file.isDirectory());
        System.out.println("名称" + file.getName());
        System.out.println("路径" + file.getPath());
        System.out.println("绝对路径:"+ file.getAbsolutePath());
        System.out.println("最后的修改时间:"+ new Date(file.lastModified()).toString());
        System.out.println("文件大小:" + file.length());

    }

}

运行结果

f:yjlblog.exe
文件是否存在:true
是文件吗:true
是目录吗:false
名称yjlblog.exe
路径f:yjlblog.exe
绝对路径:f:\\yjlblog.exe
最后的修改时间:Sat Nov 25 19:48:42 CST 2017
文件大小:0
说明:

对于上述代码中lastModifued()方法返回文件最后的修改时间。该时间是一个长整数,是与时间点(1970 年 1 月 1 日,00:00:00 GMT)之间的毫秒数。因此通过Date l类进行封装,即new 一个Date 对象,其中参数获取毫秒数。

文件列表器

  • String[] list() :当File 类对象为目录时,返回该目录下所有文件以及子目录
  • File[] list() :返回File 对象对应的路径下的所有文件对象数组
    对于这两个方法来说,第二种方法更加好一点,为什么这吗说呢,因为她可以调用file 的好多方法呀
举个栗子OAO

定义一个类,演示利用list()方法把f根目录下的目录或者文件的名称列举出来。

public class Test1{
    public static void main(String[] args) {
        //根据路径名称穿件File 对象
        File file = new File("f:");
        //得到文件名列表
        if (file.isDirectory())
        {
            String[] fileNames = file.list();
            //利用for-each 打印各个文件名称
            for (String fileNamesSeeall : fileNames)
            {
                System.out.println(fileNamesSeeall);
            }
        }
    }

}

运行结果

$RECYCLE.BIN
111
360Rec
Adobe After Effects CC 2014精简绿色版
Adobe After Effects CC 2014精简绿色版.rar
Adobe Premiere Pro Preview Files
amp皮肤
hlw.mp4
java 大项目实时更新
JAVA项目
MLO4.2.1.rar
mmexport1510996082011.png
mysql-connector-java-5.1.20-bin.jar
navicat_permium_x64
navicat_permium_x64.7z
orcle 安装遇到的问题.txt
System Volume Information
TeamViewer Corporate 12.0.88438.7z
test2.txt
typecho-theme-apollo-1.0.2.zip
WPS+Office+2016+
WPS+Office+2016+.7z
yjlblog.exe
yjlblog.txt
个人
作业
图书数据管理系统-MySQL (V2.0).zip
壁纸
备份
娱乐
宿舍截图
小软件
屏幕录像专家 v20170328.exe
工作室
帮助文档
憋笑.prproj
我的码农之路
收藏
数据库启用
新建文件夹
杂七杂八
泡泡表情
王老师文件
班级信息
电子图书
素材
纲要实践课安排.doc
网站
苹果apple107秒快闪
苹果apple107秒快闪.rar
表情包
课件笔记
赵彬富
过错不应犯之,功绩亦不应漠之.docx
重要资料
音乐

说明

从执行结果可以看出,list()方法将f盘的东西都出来了(都让你们看到了呜呜~~),但是么有标明哪个是文件哪个是目录呢QAQ..

举第二个栗子(~ ̄▽ ̄)~*

那就把上面的没有实现的功能实现吧,是目录是文件拉出来溜溜!!!!

package wfu;

import java.io.File;

public class Test1{
    public static void main(String[] args) {
        //根据路径名称创建File 对象
        File file = new File("f:");
        //得到文件名列表
        if (file.isDirectory())
        {
            File[] files = file.listFiles();
            //利用foreach 获取每个File对象
            for (File f:files)
            {
                if (f.isFile()){
                    System.out.println("文件: "+ f);
                }
                else{
                    System.out.println("目录: " + f);
                }
            }
        }

    }
}

运行结果

目录: f:\$RECYCLE.BIN
目录: f:\111
目录: f:\360Rec
目录: f:\Adobe After Effects CC 2014精简绿色版
文件: f:\Adobe After Effects CC 2014精简绿色版.rar
目录: f:\amp皮肤
文件: f:\hlw.mp4
目录: f:\java theme
目录: f:\java 大项目实时更新
目录: f:\JAVA项目
文件: f:\MLO4.2.1.rar
文件: f:\mmexport1510996082011.png
文件: f:\mysql-connector-java-5.1.20-bin.jar
目录: f:\navicat_permium_x64
文件: f:\navicat_permium_x64.7z
文件: f:\orcle 安装遇到的问题.txt
目录: f:\System Volume Information
文件: f:\TeamViewer Corporate 12.0.88438.7z
文件: f:\test2.txt
文件: f:\typecho-theme-apollo-1.0.2.zip
目录: f:\WPS+Office+2016+
文件: f:\WPS+Office+2016+.7z
文件: f:\yjlblog.exe
文件: f:\yjlblog.txt
目录: f:\个人
目录: f:\作业
文件: f:\图书数据管理系统-MySQL (V2.0).zip
目录: f:\壁纸
目录: f:\备份
目录: f:\娱乐
目录: f:\宿舍截图
目录: f:\小软件
文件: f:\屏幕录像专家 v20170328.exe
目录: f:\工作室
目录: f:\帮助文档
文件: f:\憋笑.prproj
目录: f:\我的码农之路
目录: f:\收藏
目录: f:\数据库启用
目录: f:\新建文件夹
目录: f:\杂七杂八
目录: f:\泡泡表情
目录: f:\王老师文件
目录: f:\班级信息
目录: f:\电子图书
目录: f:\素材
文件: f:\纲要实践课安排.doc
目录: f:\网站
目录: f:\苹果apple107秒快闪
文件: f:\苹果apple107秒快闪.rar
目录: f:\表情包
目录: f:\课件笔记
目录: f:\赵彬富
文件: f:\过错不应犯之,功绩亦不应漠之.docx
目录: f:\重要资料
目录: f:\音乐

  • 输入流(InputSream):只能从中读取数据,而不能向其中写入数据
  • 输出流(OutputStream):只能向其写入数据,而不能从中读取数据
  • 字节流:在流中处理的基本单位为字节(8位的bit)的流
  • 字符流 :在流中处理的基本单位为字符(16位的Unicode)的流
  • 节点流 :不写了,太长了,书上有.....
  • 过滤流:............

未完待续.....

java 中 “文件” 和 “流” 的简单分析的更多相关文章

  1. java中的IO流

    Java中的IO流 在之前的时候我已经接触过C#中的IO流,也就是说集中数据固化的方式之一,那么我们今天来说一下java中的IO流. 首先,我们学习IO流就是要对文件或目录进行一系列的操作,那么怎样操 ...

  2. Java中的IO流总结

    Java中的IO流总结 1. 流的继承关系,以及字节流和字符流. 2. 节点流FileOutputStream和FileInputStream和处理流BufferedInputStream和Buffe ...

  3. JAVA 中的IO流

    Java中的IO流是用来处理设备与设备之前的数据传输,在java中以流的形式传输.流分为两类:字节流和字符流. 字节流:InputStream,OutPutSteam.(计算机内的数据都是以字节存储的 ...

  4. Java中的IO流(二)

    上一篇<Java中的IO流(一)>把学习IO流的字符流作了一下记录,本篇把字节流记录一下. 一,Java中的字节流 Java中的字节流的操作方式与字符流的操作方式大致相同,连方法名都是类似 ...

  5. Java中的IO流体系

    Java为我们提供了多种多样的IO流,我们可以根据不同的功能及性能要求挑选合适的IO流,如图10-7所示,为Java中IO流类的体系. 注:这里只列出常用的类,详情可以参考JDK API文档.粗体标注 ...

  6. Java中的IO流 - 入门篇

    前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的IO流-入门篇>,希望对大家有帮助,谢谢 由于Java的IO类有很多,这就导致我刚开始学的时候,感觉很乱,每次用到都是上网搜,结果 ...

  7. java中文件的I/O操作

    java中文件的读写操作 (一) (1)java中文件的字节转成字符读操作 FileInputStream fStream = new FileInputStream("test.txt&q ...

  8. Java IO 文件与流基础

    Java IO 文件与流基础 @author ixenos 摘要:创建文件.文件过滤.流分类.流结构.常见流.文件流.字节数组流(缓冲区) 如何创建一个文件 #当我们调用File类的构造器时,仅仅是在 ...

  9. java中的缓冲流BufferedWriter和BufferedReader

    java中的缓冲流有BufferedWriter和BufferedReader 在java api 手册中这样说缓冲流: 从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取.可以指 ...

随机推荐

  1. ABAP 数值四舍五入函数

    VALUE '12.5445' , dat1 . VALUE '12.540'. * 方法一 CALL FUNCTION 'HR_NZ_ROUNDING_DECIMALS' EXPORTING val ...

  2. C#类的学习

    ①类的定义是以关键字 class 开始,后跟类的名称.类的主体,包含在一对花括号内.下面是类定义的一般形式: 类的修饰符 class 类名 :继承的类{ //类的成员 } 请注意: 如果要访问类的成员 ...

  3. 张高兴的 Windows 10 IoT 开发笔记:使用 MAX7219 驱动 8×8 点阵

    GitHub:https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/MAX7219

  4. jfinal使用jstl表达的存在的问及解决

    问题 使用jstl 的el表达式 传递数据刷新页面,页面数据不显示,经过验证,数据的确传递过去,但是官方文档并没有详细描述,getModel() 不需要设get set() ,但是使用jstl el表 ...

  5. “华尔街之狼”:ICO是“史上最大骗局”

    勘探船进村的那个夏季,父亲从城里带回了那把手电.手电的金属外壳镀了镍,看上去和摸起来一样冰凉.父亲进城以前采了两筐枸杞子,他用它们换回了那把锃亮的东西.父亲一个人哼着<十八摸>上路,鲜红透 ...

  6. IDEA启动后页面没有tomcat server选项,显示灰色问号和红叉不能使用

    说明:自己好几次硬盘莫名其妙读不出来导致电脑重启后idea没有了tomcat选项,原来的tomcat上显示灰色的问号和红色小叉子,网上搜了好久加上自己摸索,终于解决了.现在记一下也分享一下,省的下回又 ...

  7. 我的第一个python web开发框架(10)——工具函数包说明(一)

    PS:原先是想直接进入功能开发,要用到什么函数时再创建,这样也容易熟悉每个函数的由来和使用方法,但考虑到这样操作,到时会经常在不同文件间切换,不好描述,容易造成混乱,所以还是使用函数库这种方式来说明. ...

  8. ELK系列~log4-nxlog-Fluentd-elasticsearch写json数据需要注意的几点

    经验与实践 前两篇文章里我们介绍了nxlog的日志收集和转发<ELK系列~Nxlog日志收集加转发(解决log4日志换行导致json转换失败问题)>,今天我们主要总结一下,在与log4和f ...

  9. Spark 作业调度相关术语

    作业(Job):RDD 中由行动操作所生成的一个或多个调度阶段 调度阶段(Stage):每个作业会因为 RDD 间的依赖关系拆分成多组任务集合,称为调度阶段,也叫做任务集(TaskSet).高度阶段的 ...

  10. 详解 $().css('width')和$().width()的区别

    在本次项目开发中,经常用jquery获取高度和宽度并且动态加载,有时候用$().css('width')或$().width()这两个方法获取宽度并设置,但是有时候出现获取不到的情况,查阅资料后发现他 ...