| |
|
开发:
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图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:33:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |