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. 8.golang语言学习,运算符介绍

    1.算术运算 自增,自减,只能单独使用,++,--只能写在变量后面 2.赋值运算符 优先级,单目运算,赋值运算从右到左运算,其余从左到右,无三目运算,用if实现 3.比较运算符/关系 4.逻辑运算符 ...

  2. etcd 基于ubuntu 20.04 部署集群

    Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息,K8S中所有持久化的状态信息都是以Key-Value的形式存储在etcd中,提供分布式协调服务.之 ...

  3. 关于npm和yarn的坑

    遇到下载出错的情况,这两个两个双管齐下

  4. MySQL8.0的下载、安装、配置

    转1: MySQL8.0的下载.安装.配置 MySQL8安装教程(下载.安装.连接.卸载) Navicat Premium 15激活(含注册机)

  5. 4、word—截图的试卷背景为黑色,如何去掉呢?

    1.[图片格式]->[校正]->[锐化50%] 2.[图片格式]->[校正]->[亮度/对比度]选择一个适合自己的

  6. SQLite 帮助类

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

  7. 主要转引本地的pycharm如何与服务器连接

    需求:本地电脑pycharm上编写程序,在服务器端运行代码. 主要参考了这两篇文章: 1. https://blog.csdn.net/qq_43391414/article/details/1205 ...

  8. bert一些思考

    bert结构 首先是embdding lookup,[batch * seq]-->[batch, seq, hidden] 然后是加个mask embdding和type embdding和p ...

  9. LeetCode刷题感想之BFS

    BFS, 顾名思义,广度优先遍历,与DFS对应. 最大的一个区别是,在解题套路里,DFS 多数使用 List<List<Object>> 的方式来保存结果集,并且最后删除回溯的 ...

  10. vue中模块化后mapState的使用

    代码如下: 相当于声明了一个变量name,然后以state入参取得其modules文件夹中user文件里的name属性.因为在模块(如user)中,在抛出时的export default中添加了一句: ...