| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> Java知识库 -> Day17 -> 正文阅读 |
|
|
[Java知识库]Day17 |
File1.File类的概述和构造方法File:它是文件和目录路径名抽象的表示
2.File类创建功能
public boolean createNewFile() 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件
public boolean mkdir() 创建由此抽象路径名命名的目录
public boolean mkdirs() 创建由此抽象路径名命名的目录,包括任何必须但不存在的父目录
3.File类判断和获取方法
4.File类删除功能
绝对路径和相对路径的区别
递归递归的概述:以编程的角度来看,递归指的是方法定义中调用方法本身的现象
字节流1. IO流概述:
2.IO流的概述和分类IO流分类:
3.字节流写数据字节流抽象基类
FileOutputStream:文件输出流用于将数据写入File
使用字节输出流写数据的步骤:
//byte[] getBytes():返回字符串对应的字节数组 4.字节流写数据的3种方式
5.字节流写数据的两个小问题字节流写数据如何实现换行呢?
6.字节流写数据加异常处理finally:在异常处理时提供finally块来执行所有清除操作。比如说IO流中的释放资源 特点:被finally控制的语句一定会执行,除非JVM退出 try{ 可能出现异常的代码; }catch(异常类名 变量名){ 异常的处理代码; }finally{ 执行所有清除操作; } 7.字节流读数据(一次读一个字节数据)需求:把文件fos.txt中的内容读取出来在控制台输出 FileInputStream:从文件系统中的文件获取输入字节
package com.itheima_02;
?
import java.io.FileInputStream;
import java.io.IOException;
?
/*
? ?需求:
? ? ? ?把文件fos.txt中的内容读取出来在控制台输出
?
? ?FileInputStream:从文件系统中的文件获取输入字节
? ? ? ?FileInputStream(String name):通过打开与实际文件的连接来创建一个FileInputStream,该文件由文件系统中的路径名name命名
?
? ?使用字节输入流读数据的步骤:
? ? ? ?1:创建字节输入流对象
? ? ? ?2:调用字节输入流对象的读数据方法
? ? ? ?3:释放资源
*/
public class FileInputStreamDemo01 {
? ?public static void main(String[] args) throws IOException {
? ? ? ?//创建字节输入流对象
? ? ? ?//FileInputStream(String name)
? ? ? ?FileInputStream fis = new FileInputStream("myByteStream\\fos.txt");
?
? ? ? ?//调用字节输入流对象的读数据方法
? ? ? ?//int read():从该输入流读取一个字节的数据
?
? ? ? ?/*
? ? ? ?//第一次读取数据
? ? ? ?int by = fis.read();
? ? ? ?System.out.println(by);
? ? ? ?System.out.println((char)by);
?
? ? ? ?//第二次读取数据
? ? ? ?by = fis.read();
? ? ? ?System.out.println(by);
? ? ? ?System.out.println((char)by);
?
? ? ? ?//再多读取两次
? ? ? ?by = fis.read();
? ? ? ?System.out.println(by);
? ? ? ?by = fis.read();
? ? ? ?System.out.println(by);
?
? ? ? ?//如果达到文件的末尾, -1
? ? ? ?*/
?
? ? ? ?/*
? ? ? ?int by = fis.read();
? ? ? ?while (by != -1) {
? ? ? ? ? ?System.out.print((char)by);
? ? ? ? ? ?by = fis.read();
? ? ? ?}
? ? ? ?*/
?
? ? ? ?//优化上面的程序
? ? ? ?int by;
? ? ? ?/*
? ? ? ? ? ?fis.read():读数据
? ? ? ? ? ?by=fis.read():把读取到的数据赋值给by
? ? ? ? ? ?by != -1:判断读取到的数据是否是-1
? ? ? ? */
? ? ? ?while ((by=fis.read())!=-1) {
? ? ? ? ? ?System.out.print((char)by);
? ? ? }
?
?
? ? ? ?//释放资源
? ? ? ?fis.close();
? }
}
8.字节流读数据(一次读一个字节数组数据)需求:把文件fos.txt中的内容读取出来在控制台输出 使用字节输入流读数据的步骤:
一次读一个字节数组的方法:
案例递归求阶乘package com.itheima_02;
?
/*
? ?需求:
? ? ? ?用递归求5的阶乘,并把结果在控制台输出
?
? ?思路:
? ? ? ?1:定义一个方法,用于递归求阶乘,参数为一个int类型的变量
? ? ? ?2:在方法内部判断该变量的值是否是1
? ? ? ? ? ?是:返回1
? ? ? ? ? ?不是:返回n*(n-1)!
? ? ? ?3:调用方法
? ? ? ?4:输出结果
*/
public class DiGuiDemo01 {
? ?public static void main(String[] args) {
? ? ? ?//调用方法
? ? ? ?int result = jc(5);
? ? ? ?//输出结果
? ? ? ?System.out.println("5的阶乘是:" + result);
? }
?
? ?//定义一个方法,用于递归求阶乘,参数为一个int类型的变量
? ?public static int jc(int n) {
? ? ? ?//在方法内部判断该变量的值是否是1
? ? ? ?if(n == 1) {
? ? ? ? ? ?//是:返回1
? ? ? ? ? ?return 1;
? ? ? } else {
? ? ? ? ? ?//不是:返回n*(n-1)!
? ? ? ? ? ?return n*jc(n-1);
? ? ? }
? }
}
遍历目录package com.itheima_02;
?
import java.io.File;
?
/*
? ?需求:
? ? ? ?需求:给定一个路径(E:\\itcast),请通过递归完成遍历该目录下的所有内容,并把所有文件的绝对路径输出在控制台
?
? ?思路:
? ? ? ?1:根据给定的路径创建一个File对象
? ? ? ?2:定义一个方法,用于获取给定目录下的所有内容,参数为第1步创建的File对象
? ? ? ?3:获取给定的File目录下所有的文件或者目录的File数组
? ? ? ?4:遍历该File数组,得到每一个File对象
? ? ? ?5:判断该File对象是否是目录
? ? ? ? ? ?是:递归调用
? ? ? ? ? ?不是:获取绝对路径输出在控制台
? ? ? ?6:调用方法
*/
public class DiGuiDemo02 {
? ?public static void main(String[] args) {
? ? ? ?//根据给定的路径创建一个File对象
// ? ? ? File srcFile = new File("E:\\itcast");
? ? ? ?File srcFile = new File("E:\\itheima");
?
? ? ? ?//调用方法
? ? ? ?getAllFilePath(srcFile);
? }
?
? ?//定义一个方法,用于获取给定目录下的所有内容,参数为第1步创建的File对象
? ?public static void getAllFilePath(File srcFile) {
? ? ? ?//获取给定的File目录下所有的文件或者目录的File数组
? ? ? ?File[] fileArray = srcFile.listFiles();
? ? ? ?//遍历该File数组,得到每一个File对象
? ? ? ?if(fileArray != null) {
? ? ? ? ? ?for(File file : fileArray) {
? ? ? ? ? ? ? ?//判断该File对象是否是目录
? ? ? ? ? ? ? ?if(file.isDirectory()) {
? ? ? ? ? ? ? ? ? ?//是:递归调用
? ? ? ? ? ? ? ? ? ?getAllFilePath(file);
? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ?//不是:获取绝对路径输出在控制台
? ? ? ? ? ? ? ? ? ?System.out.println(file.getAbsolutePath());
? ? ? ? ? ? ? }
? ? ? ? ? }
? ? ? }
? }
}
案例:复制文本文件
案例:复制图片package com.itheima_02;
?
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
?
/*
? ?需求:
? ? ? ?把E:\\itcast\\mn.jpg复制到模块目录下的mn.jpg
?
? ?思路:
? ? ? ?1:根据数据源创建字节输入流对象
? ? ? ?2:根据目的地创建字节输出流对象
? ? ? ?3:读写数据,复制图片(一次读取一个字节数组,一次写入一个字节数组)
? ? ? ?4:释放资源
*/
public class CopyJpgDemo {
? ?public static void main(String[] args) throws IOException {
? ? ? ?//根据数据源创建字节输入流对象
? ? ? ?FileInputStream fis = new FileInputStream("E:\\itcast\\mn.jpg");
? ? ? ?//根据目的地创建字节输出流对象
? ? ? ?FileOutputStream fos = new FileOutputStream("myByteStream\\mn.jpg");
?
? ? ? ?//读写数据,复制图片(一次读取一个字节数组,一次写入一个字节数组)
? ? ? ?byte[] bys = new byte[1024];
? ? ? ?int len;
? ? ? ?while ((len=fis.read(bys))!=-1) {
? ? ? ? ? ?fos.write(bys,0,len);
? ? ? }
?
? ? ? ?//释放资源
? ? ? ?fos.close();
? ? ? ?fis.close();
? }
}
|
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/8 5:37:37- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |