Java笔记第四弹
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笔记第四弹的更多相关文章
- Java笔记(四)常用基础类
常用基础类 一)String String内部用一个字符数组表示字符串: private final char value[]; 注意:Java9对此做了优化,采用byte[],如果字符都是ASCII ...
- 菜鸡的Java笔记 第四 - java 基础运算符
数学运算符,逻辑运算,三目运算,位运算 double d2 = 314e2; //采用科学计数法的写法,表示10的2次方.= 31400.0 代码写的越简单越好 简化运算符 代码:x=x+y 可以 ...
- Effective java笔记(四),泛型
泛型为集合提供了编译时类型检查. 23.不要在代码中使用原生态类型 声明中具有一个或多个类型参数的类或接口统称为泛型.List<E>是一个参数化类,表示元素类型为E的列表.为了提供兼容性, ...
- Java笔记(十四)……抽象类与接口
抽象类概念 抽象定义: 抽象就是从多个事物中将共性的,本质的内容抽取出来. 例如:狼和狗共性都是犬科,犬科就是抽象出来的概念. 抽象类: Java中可以定义没有方法体的方法,该方法的具体实现由子类完成 ...
- Java笔记(四)
13. 集合框架: 集合中存储的都是对象的引用(地址) 迭代器:集合的取出元素的方式 import java.util.ArrayList; import java.util.Iterator; pu ...
- .NET MVC 学习笔记(四)— 基于Bootstarp自定义弹出框
.NET MVC 学习笔记(四)—— 基于Bootstarp自定义弹出框 转载自:https://www.cnblogs.com/nele/p/5327380.html (function ($) { ...
- Java虚拟机笔记(四):垃圾收集器
前言 前一篇文章介绍了内存的垃圾收集算法,现在介绍下内存回收的具体实现--垃圾收集器. 由于Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商,不同版本的虚拟机所提供的垃圾收集 ...
- Java多线程编程实战指南(核心篇)读书笔记(四)
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76690961冷血之心的博客) 博主准备恶补一番Java高并发编程相 ...
- Java NIO 学习笔记(四)----文件通道和网络通道
目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...
- java并发编程笔记(四)——安全发布对象
java并发编程笔记(四)--安全发布对象 发布对象 使一个对象能够被当前范围之外的代码所使用 对象逸出 一种错误的发布.当一个对象还没构造完成时,就使它被其他线程所见 不安全的发布对象 某一个类的构 ...
随机推荐
- C# 内存回收
开发完成之后发现自己写的程序内存占用太高,找到如下解决方案 使用了一个timer每2s调用一次ClearMemory() #region 内存回收 [DllImport("kernel32. ...
- logic and control
logic and control 程序的本质 Programs = Data Structures + Algorithms Algorithm = Logic + Control CPU 的构成 ...
- 使用LitJson输出格式化json文件到本地
百度上搜了半天,竟然没有C#使用LitJson格式化输出的例子,全都是Newtonsoft.Json的,最后在litjson的官网找到了方法. 给大家分享一下: https://litjson.net ...
- 1903021126 申文骏 Java 第三周作业 编写代码及运行
项目 内容 课程班级博客链接 19级信计班(本) 作业要求链接 第三周作业要求 博客名称 1903021126 申文骏 Java 第三周作业 编写代码及运行 要求 每道题要有题目,代码(使用插入代码, ...
- python 冰墩墩
1. python, turtles 以下为代码: import turtle # 设置一个画布 turtle.setup(800,600) turtle.speed(10) # 画左手和手内 tur ...
- scala中的数据类型
一.Scala的数据类型 (1). scala中一切数据都是对象,都是Any的子类: (2).scala中数据类型分为两大类:数值类型(AnyVal,即any value,任意值).引用类型(AnyR ...
- 2.5基本算法之搜索 156:LETTERS
#include<iostream>#include<cstdio>using namespace std;char a[21][21];bool b[26]; int X[4 ...
- mybatis插入批量数据
1 for循环重复调用dao,消耗大 2 sql语句编写插入多条,只用于少数 3 mybatis的batch插入 @Test public void testInsertBatch2() ...
- 正确理解RestFul 接口
一.REST# REST,即Representational State Transfer的缩写,翻译过来就是"表现层状态转化".不得不承认,我在刚开始看到这个名词的时候是一脸懵逼 ...
- OSIDP-I/O管理和磁盘调度-11
I/O设备 I/O设备分类:人可读.机器可读和远程通信三类. I/O设备之间的差别: 1.数据传送速率 2.应用领域 3.控制的复杂性 4.传送单位 5.数据表示形式 6.错误条件 I/O功能的组织 ...