File类创建功能
public boolean createNewFile();//当该文件名不存在时,创建一个由该抽象路径名命名的新空文件
public boolean mkdir();//创建由此抽象路径名命名的目录
public boolean mkdirs();//创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录
相关应用:
public class Main {
public static void main(String[] args) throws IOException {
File f1=new File("E:\\itcast\\java.txt");
System.out.println(f1.createNewFile());//创建文件 File f2=new File("E:\\itcast\\javaee");
System.out.println(f2.mkdir());//创建目录 File f3=new File("E:\\itcast\\javaweb\\HTML");
System.out.println(f3.mkdirs());//创建多级目录 File f4=new File("E:\\itcast\\javasee.txt");
System.out.println(f4.createNewFile());//创建文件
}
}
//不能名字相同,即使分别是文件和目录也不行
//起初不存在时,返回true;建立之后,会返回false;
//在创建目录时仅仅写出了文件名称,该文件与模块在同级目录下
File类删除功能
public boolean delete();//删除由此抽象路径名表示的文件或目录
//绝对路径:完整的路径名,不需要其他任何信息就可以定位它所表示的文件
//相对路径:必须使用取自其他路径的信息进行解释,例如:myfile\\java.txt
相关应用:
//在当前模块目录下创建java.txt文件
File f1=new File("myfile\\java.txt");
System.out.println(f1.createNewFile()); //删除当前模块目录下的java.txt文件
System.out.println(f1.delete()); //在当前模块目录下创建itcast目录
File f2=new File("myfile\\itcast");
System.out.println(f2.mkdir()); //删除当前模块目录下的itcast目录
System.out.println(f2.delete()); //在当前目录下创建itcast目录,然后在该目录中创建一个java.txt文件
//上级目录若是不存在,无法在该目录下创建文件
File f3=new File("myfile\\itcast");
System.out.println(f3.mkdir());
File f4=new File("myfile\\itcast\\java.txt");
System.out.println(f4.createNewFile()); //删除当前模块下的目录itcast-->先删除内容,再删除目录
System.out.println(f4.delete());
System.out.println(f3.delete());
File类的判断和获取功能
public boolean isDirectory();//测试此抽象路径名表示的File是否为目录
public boolean isFile();//测试此抽象路径名表示的File是否为文件
public boolean exists();//测试此抽象路径名表示的File是否存在
public String getAbsolutePath();//返回此抽象路径名的绝对路径名字符串
public String getPath();//将此抽象路径名转换为路径名字符串
public String getName();//返回由此抽象路径名表示的文件或目录的名称
public String[] list();//返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
public File[] listFiles();//返回此抽象路径名表示的目录中的文件和目录的File对象数组
相关应用:
File f1=new File("myfile\\java.txt");
System.out.println(f1.isDirectory());
System.out.println(f1.isFile());
System.out.println(f1.exists());
System.out.println(f1.getAdsolutePath());
System.out.println(f1.getPath());
System.out.println(f1.getName()); File f2=new File("E:\\itcast");
String[] str=f2.list();
for(String s:str){
System.out.println(s);
} File[] ff=f2.listFiles();
for(File f:ff){
//System.out.println(f);
if(f.isFile()){
System.out.println(f.getName());
}
}
递归
//定义一个方法f(n),表示第n个月的兔子对数
//第(n-1)个月--->f(n-1); 第(n-2)个月--->f(n-2);
//规模较小,少量程序
//递归出口---递归规则(规模较小)
案例:递归求阶乘
public class Main {
public static void main(String[] args) {
System.out.println(qiu(5));
}
public static int qiu(int n){
if(n==1){
return 1;
}else{
return n*qiu(n-1);
}
}
}
案例:遍历目录
import java.io.File;

public class Main {
public static void main(String[] args) {
File f=new File("E:\\itcast");
//调用方法
huoqu(f);
}
//定义方法
public static void huoqu(File f){
File[] ff=f.listFiles();
if(ff!=null) {
for (File lf : ff) {
if(lf.isDirectory()){
huoqu(lf);
}else{
System.out.println(lf.getAbsolutePath());//获取绝对路径
}
}
}
}
}

IO流

分为:字节流:输入流、输出流

字符流:字符输入流、字符输出流

一般按照数据类型分类

@可以读懂记事本中的内容,使用字符流;否则使用字节流

如果不知道使用哪种类型的流,就使用字节流

字节流写数据
//字节流抽象基类
1、InputStream:这个抽象类是表示字节输入流的所有类的超类
2、OutputStream:这个抽象类是表示字节输出流的所有类的超类
//子类名特点:子类名称都是以其父类名作为子类名的后缀
相关应用:
//调用系统功能创建了文件
//创建了字节输出流对象
//让字节输出流对象指向创建好的文件
FileOutputStream f=new FileOutputStream("myByteStream\\ff.txt"); //void write(int b);
//将指定的字节写入此文件输出流
f.write(97);//存入相应的AscII码值 //释放资源
//关闭此文件输出流
//释放与此流相关联的任何系统资源
f.close();
步骤:

1、创建字节输出流对象;

2、调用字节输出流对象的写数据方法;

3、释放资源;

字节流写数据的三种方式
void write(int b);//将指定的字节写入此文件输出流---一次写一个字节数据
void write(byte[]b);//将b.length字节从指定的字节数组写入此文件输出流---一次写一个字节数组数据
void write(byte[] b,int off,int len);//将len字节从指定的字节数组开始,从偏移量off开始写入此文件输出流---一次写一个字节数组的部分数量
相关应用:
FileOutputStream fos=new FileOutputStream("myByteStream\\fos.txt");

//方式一
fos.write(97); //方式二
byte[] bys={97,98,99,100,101};
fos.write(bys);
//返回字符串对应的字符数组
byte[] bys="abcde".getBytes();
fos.write(bys); //方式三
fos.write(bys,0,bys.length);
字节流写数据的两个小问题
1、字节流写数据如何实现换行?
FileOutputStream fos=new FileOutputStream("myByteStream\\fos.txt");

for(int i=0;i<10;i++){
fos.write("hello".getBytes());
fos.write("\r\n".getBytes());
} fos.close();
//换行符:Windows:\r\n Linux:\n Mac:\r
2、字节流写数据如何实现追加写入?
FileOutputStream fos=new FileOutputStream("myByteStream\\fos.txt",true);//true表示追加写入
字节流写数据加异常处理
//finally在异常处理时提供finally块执行所有清除操作,比如说IO流中的释放资源
//使用
try{
可能出现异常的代码;
}catch(异常类名 变量名){
异常的处理代码;
}finally{
执行所有清除操作;
//有时候还需要判断文件是否为null
}

Java笔记第四弹的更多相关文章

  1. Java笔记(四)常用基础类

    常用基础类 一)String String内部用一个字符数组表示字符串: private final char value[]; 注意:Java9对此做了优化,采用byte[],如果字符都是ASCII ...

  2. 菜鸡的Java笔记 第四 - java 基础运算符

    数学运算符,逻辑运算,三目运算,位运算 double d2 = 314e2; //采用科学计数法的写法,表示10的2次方.= 31400.0 代码写的越简单越好   简化运算符 代码:x=x+y 可以 ...

  3. Effective java笔记(四),泛型

    泛型为集合提供了编译时类型检查. 23.不要在代码中使用原生态类型 声明中具有一个或多个类型参数的类或接口统称为泛型.List<E>是一个参数化类,表示元素类型为E的列表.为了提供兼容性, ...

  4. Java笔记(十四)……抽象类与接口

    抽象类概念 抽象定义: 抽象就是从多个事物中将共性的,本质的内容抽取出来. 例如:狼和狗共性都是犬科,犬科就是抽象出来的概念. 抽象类: Java中可以定义没有方法体的方法,该方法的具体实现由子类完成 ...

  5. Java笔记(四)

    13. 集合框架: 集合中存储的都是对象的引用(地址) 迭代器:集合的取出元素的方式 import java.util.ArrayList; import java.util.Iterator; pu ...

  6. .NET MVC 学习笔记(四)— 基于Bootstarp自定义弹出框

    .NET MVC 学习笔记(四)—— 基于Bootstarp自定义弹出框 转载自:https://www.cnblogs.com/nele/p/5327380.html (function ($) { ...

  7. Java虚拟机笔记(四):垃圾收集器

    前言 前一篇文章介绍了内存的垃圾收集算法,现在介绍下内存回收的具体实现--垃圾收集器. 由于Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商,不同版本的虚拟机所提供的垃圾收集 ...

  8. Java多线程编程实战指南(核心篇)读书笔记(四)

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76690961冷血之心的博客) 博主准备恶补一番Java高并发编程相 ...

  9. Java NIO 学习笔记(四)----文件通道和网络通道

    目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...

  10. java并发编程笔记(四)——安全发布对象

    java并发编程笔记(四)--安全发布对象 发布对象 使一个对象能够被当前范围之外的代码所使用 对象逸出 一种错误的发布.当一个对象还没构造完成时,就使它被其他线程所见 不安全的发布对象 某一个类的构 ...

随机推荐

  1. tomcat各个版本下载

    官网地址:https://archive.apache.org/dist/tomcat/

  2. 从redis中取出数据并转成java对象

    1.//数据存入redis中 redisTemplate.opsForValue().set(loginame, JSON.toJSONString(users),1000,TimeUnit.SECO ...

  3. Linux常用指令1

    1.文件和目录的相关指令: ·cd:打开 ·pwd:查看当前所在的目录 ·mkdir:新建目录 ·rmdir:删除目录 ·ls:文件和目录查看 ·cp:复制 ·rm:删除 ·mv:移动 2.文本文件内 ...

  4. Ubuntu16.04配置网卡

    设置步骤: 1.路由器插电后,电脑使用网线,连接无线路由器任一LAN口,注意两者单独连接,先不要连接宽带网线.打开电脑浏览器,在地址栏输入192.168.100.1. 在路由器的管理界面,输入路由器的 ...

  5. Pnetlab中锐捷镜像反复重启或telnet无法键入内容

    PNETLab 版本: 5.2.7 或 5.3.3等 锐捷镜像版本: V1.03 故障详情: 基于前文的系统环境和锐捷镜像.替换后的yml文件,更新PnetLAB版本到5.3.3后,设备循环重启,无法 ...

  6. c++学习7 指针与数组

    一 二维数组与数组指针的关系 二维数组名,代表的是第0行的行地址,"+1"是跳过一个行.而取" * "的话,则是在当前行地址基础上再取列地址,那么如果我们再取一 ...

  7. SQLite 帮助类

    public static class SqliteHelper { /// <summary> /// 获得连接对象 /// </summary> /// <retur ...

  8. c++ 构造名字不足的0补齐

    stringstream ss; ss << setfill('0') << setw(10) << i; vstrImageFilenames[i] = strP ...

  9. 面向对象2(Java)

    封装 基本介绍 该露的露,该藏的藏,我们的程序设计要追求"高内聚,低耦合": 高内聚:类的内部数据操作细节自己完成,不允许外部干涉 低耦合:仅暴露少量的方法给外部使用 封装(数据的 ...

  10. 3DMAX2023卸载方法,如何完全彻底卸载删除清理干净3dmax各种残留注册表和文件?【转载】

    3dmax2023卸载重新安装方法,使用清理卸载工具箱完全彻底删除干净3dmax2023各种残留注册表和文件.3dmax2023显示已安装或者报错出现提示安装未完成某些产品无法安装的问题,怎么完全彻底 ...