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. pytorch学习笔记(3)--dataset使用

    下载数据集 import torchvision from torch.utils.tensorboard import SummaryWriter dataset_transform = torch ...

  2. git rebase之abort,continue,skip

    git rebase --abort 会放弃合并,回到rebase操作之前的状态,之前的提交的不会丢 git rebase --skip 会将引起冲突的commit丢弃掉 git rebase --c ...

  3. Typora --Markdown 文本工具

    标题: #+空+name  一级 ##+空+name  二级 ###+空+name  三级 ......------六级  (可排版折叠) 字体: 粗体:两边加** 斜体:两边加* 斜体加粗:*** ...

  4. Flink 中 DataStream 和 DataSet区别

    DataSet与DataStream的区别.使用 DataSet同DataStream从其接口封装.真实计算Operator有很大的差别,Dataset的实现在flink-javamodule中,而D ...

  5. APP性能测试——冷启动耗时测试

    冷启动耗时: 即后台没有该应用的进程(我们使用am force-stop命令结束app运行),打开软件,直到进入到首页activity页面,并计算耗时. 示例代码: import os import ...

  6. app内打开外部第三方瞎下载链接

    Q:我用cordova开发项目,想在app内跳转外部链接,安装了cordova-plugin-inappbrowser后确实可以跳转,但是跳转的页面有个按钮,原本点击会下载app,现在点击后毫无反应, ...

  7. mysql之数据类型-第三篇

    mysql数据库中的每个列都应该有适当的数据类型,用于限制或允许该列中存储的数据.mysql的数据类型分别有整数,浮点数和定点数类型,日期和时间类型,字符串类型和二进制类型等. 整数类型 数值型数据类 ...

  8. IDEA 启动SpringBoot项目或Spring项目出现程序包XXX不存在

    该方法是在你的pom中的依赖(是否缺少,版本是否兼容)maven仓库等配置没有问题的情况下 第一种方法: 打开IDEA底部的终端Terminal,输入"mvn idea:idea" ...

  9. NS-Atmosphere payload Programmer

    NS-Atmosphere payload Programmer 通过该软件将任意payload烧写到NS-Atmosphere 注入器中, 兼容windows, ubuntu, 苹果 MAC OS ...

  10. JS实现中英文混合文字友好截取功能

    众所周知,一个汉字等于两个英文字母的长度.那么,从汉字或者英文字母中截取相同长度文字则显示的长度则不一样.此时用户体验会不好.那么怎么解决呢?往下看 <script> /** * JS实现 ...