佛山Java io流编程练习题(二)
作者:admin01发布时间:2021-07-13分类:Java技术浏览:868
导读:一.练习的题目(一)在电脑D盘下创建一个文件为HelloWorld.txt文件,判断他是文件还是目录,在创建一个目录IOTest,之后将HelloWorld.txt移动到IOT...
一.练习的题目
(一)在电脑D盘下创建一个文件为HelloWorld.txt文件,判断他是文件还是目录,在创建一个目录IOTest,之后将HelloWorld.txt移动到IOTest目录下去;之后遍历IOTest这个目录下的文件:
package com.xykj.lesson1;
import java.io.File;
import java.io.IOException;
public class Test1 {
/**
* 1. 在电脑D盘下创建一个文件为HelloWorld.txt文件,
* 判断他是文件还是目录,再创建一个目录IOTest,
* 之后将HelloWorld.txt移动到IOTest目录下去;
* 之后遍历IOTest这个目录下的文件
*
* 程序分析:
* 1、文件创建使用File的createNewFile()方法
* 2、判断是文件用isFile(),判断是目录用isDirectory
* 3、创建目录用:mkdirs()方法
* 4、移动文件用:renameTo
* 5、遍历目录用:list()方法获得存放文件的数组,foreach遍历的方法把文件打印出来
* */
public static void main(String[] args) {
//在电脑D盘下创建一个文件为HelloWorld.txt文件
File file=new File("D:","HelloWorld.txt");
//创建文件,返回一个布尔值
boolean isCreate;
try {
isCreate = file.createNewFile();
if (isCreate) {
System.out.println("创建文件成功!");
}else {
System.out.println("创建文件失败!文件已经存在");
}
} catch (IOException e) {
System.out.println("创建文件失败!");
}
// 判断他是文件还是目录,
if (file.isFile()) {
System.out.println("这是一个文件");
} else {
System.out.println("这是一个目录");
}
//再创建一个目录IOTest
File file2=new File("D:/IOTest");
file2.mkdirs();
//HelloWorld.txt移动到IOTest目录下去?失败?》
if (file.renameTo(file2)) {
System.out.println("文件移动成功!");
} else {
System.out.println("文件移动失败");
}
//遍历IOTest目录下的文件
String[] arr=file2.list();
for (String string : arr) {
System.out.println(string);
}
}
}
//上面移动文件要指明文件路径和文件名
上面的file.renameTo(file2)改为:
file.renameTo(file2.getPath + "/" + file.getName());
就不会有错了。
(二) 递归实现输入任意目录,列出文件以及文件夹,效果看图
1.先建一个FileUtile工具类
package com.xykj.lesson2;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* 这是一个获取目录下所有文件夹内的所有文件的封装类
* 当然前提是你要传进来一个正确路径的文件夹
* */
public class FileUtils {
//获取文件夹下所有的文件
public static List getAllFiles(String dir){
//创建一个集合存放遍历到的File
List< File >files=new ArrayList();
File file=new File(dir);
//文件夹必须存在 并且要是文件夹
if (file.exists()&&file.isDirectory()) {
//重点! 这里要本身一直遍历
longErgodic(file,files);//把遍历得到的东西存放在files里面
}
return files;
}
//重点理解,这是一个递归方法,会不断来回调用本身,但是所有获得的数据都会存放在集合files里面
private static void longErgodic(File file, List files) {
//.listFiles()方法的使用
//把文件夹的所有文件(包括文件和文件名)都放在一个文件类的数组里面
File[] fillArr=file.listFiles();
//如果是一个空的文件夹
if (fillArr==null) {
//后面的不执行,直接返回
return;
}
//如果文件夹有内容,遍历里面的所有文件(包括文件夹和文件),都添加到集合里面
for (File file2 : fillArr) {
//如果只是想要里面的文件或者文件夹或者某些固定格式的文件可以判断下再添加
files.add(file2);
//添加到集合后,在来判断是否是文件夹,再遍历里面的所有文件
//方法的递归
longErgodic(file2, files);
}
}
}
2.再建一个主方法调用类
package com.xykj.lesson2;
import java.io.File;
import java.util.List;
public class Test2 {
/**
* 递归实现输入任意目录,列出文件以及文件夹
*
* 设计:在FileUtils类里面实现了逻辑操作,在另一边调用就可以了
* */
public static void main(String[] args) {
//比如输入D盘
Listlist=FileUtils.getAllFiles("D:");
//输出所有的文件和文件夹的名字
for (File file : list) {
System.out.println(file);
}
}
}
(三) 递归实现列出当前工程下所有.java文件
package com.xykj.lesson3;
import java.io.File;
import java.util.List;
import com.xykj.lesson2.FileUtils;
public class Test3 {
/**
* 递归实现列出当前工程下所有.java文件
* 还是要题目2的遍历文件的工具类来获取所有的文件,再过滤.java文件就可以了
* 当前目录的地址:输入.就可以获取
* */
public static void main(String[] args) {
//输入. 获取当前文件的 所有文件
Listlist=FileUtils.getAllFiles(".");
//输出.java后缀的文件的名字
for (File file : list) {
if (file.toString().endsWith(".java")) {
System.out.println(file.getName());
}
}
}
}
(四)从磁盘读取一个文件到内存中,再打印到控制台
package com.xykj.lesson4;
import java.io.File;
import java.io.FileInputStream;
public class Tset4 {
/**
* 从磁盘读取一个文件到内存中,再打印到控制台
*
* 程序设计:
* 1、读取文件用到FileinputSteam
* 2、把读取的内容不断加入到StringBuffer,
* 3、再把StringBuffer打印出来就可以
* */
public static void main(String[] args) {
// 读取D:\notePad\aa.txt里面的内容
File file = new File("D:\\notePad\\aa.txt");
try {
// 创建读取流即输入流
FileInputStream fis = new FileInputStream(file);
int len = 0;
byte[] buf = new byte[1024];
StringBuffer sb = new StringBuffer();
// 把读取的数据添加到StringBuffer里面
while ((len = fis.read(buf)) != -1) {
sb.append(new String(buf, 0, len));
}
// 把StringBuffer里面的内容打印出来
System.out.println(sb);
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
免责声明:本文文字及图片由小编转载自网络,版权所有权归原作者所有,如有侵权请及时联系我们进行删除。
以上是小编为大家带来的最新资讯,喜欢的朋友们可以继续关注本站最新动态,也可以咨询在线客服。
- 上一篇:佛山Java io流编程练习题(一)
- 下一篇:佛山学习Java可以做什么工作呢
- Java技术排行
- 标签列表
-
- Java (3694)
- 北大青鸟 (3713)
- 软件开发 (3613)
- JAVA (3413)
- UI设计入门 (2093)
- 惠州北大青鸟 (4375)
- 惠州IT培训 (2558)
- UI设计培训 (2090)
- 惠州UI设计培训 (2095)
- 惠州UI设计培训学校 (2090)
- 惠州计算机软件培训 (6260)
- 惠州计算件软件开发 (6260)
- 惠州计算机软件基础 (6261)
- 惠州计算机JAVA培训 (3574)
- 惠州计算机Java软件开发 (3620)
- 惠州计算机JAVA软件开发 (4645)
- 惠州计算机JAVA软件开发学校 (3338)
- 惠州计算机Java软件开发培训 (3338)
- 北大青鸟IT计算机学校 (5048)
- 北大青鸟IT软件学校 (5062)
- 北大青鸟IT学校 (5059)
- 惠州计算机UI设计软件开发 (2088)
- UI设计基础教程 (2088)
- UI设计是什么 (2088)
- UI设计教程 (2088)
- 网站分类
-
- 计算机教程
- 计算机入门
- 职业学校
- 新闻动态
- 专业课程
- 热门技术
- SEO
- 培训教程
- windows
- linux教程
- 系统集成
- 网站开发
- Html5
- 办公软件
- 师资力量
- 热点问答
- 联系我们
- 计算机学校
- 惠州计算机学校
- 河源计算机学校
- 广州计算机学校
- 深圳计算机学校
- 湛江计算机学校
- 佛山计算机学校
- IT计算机培训信息
- 设计专业
- UI
- 影视特效
- 游戏动漫设计
- Photoshop
- AI设计
- 软件教程
- Java技术
- C语言/C++语言培训
- C#
- Python技术
- PHP
- 数据库
- SQL Server
- 网络教程
- 网络安全
- 网络营销
- 软件专业
- 大数据专业
- 前端开发专业
- 软件测试专业
- Python专业
- 软件实施
- 珠海计算机学校
- 初中生学什么好
- 计算机认证
- 文章归档
-
- 2024年11月 (14)
- 2024年10月 (32)
- 2024年9月 (29)
- 2024年8月 (68)
- 2024年7月 (59)
- 2024年6月 (43)
- 2024年5月 (48)
- 2024年4月 (80)
- 2024年3月 (65)
- 2024年2月 (54)
- 2024年1月 (25)
- 2023年12月 (12)
- 2023年11月 (73)
- 2023年10月 (134)
- 2023年9月 (34)
- 2023年8月 (3)
- 2023年7月 (3)
- 2023年6月 (12)
- 2023年5月 (30)
- 2023年4月 (72)
- 2023年3月 (11)
- 2023年2月 (34)
- 2023年1月 (37)
- 2022年12月 (78)
- 2022年11月 (359)
- 2022年6月 (1193)
- 2022年5月 (570)
- 2022年4月 (1567)
- 2022年3月 (982)
- 2022年2月 (54)
- 2022年1月 (182)
- 2021年9月 (308)
- 2021年8月 (1704)
- 2021年7月 (2423)
- 2021年6月 (1806)
- 2021年5月 (1569)
- 2021年4月 (1380)
- 2021年3月 (1255)
- 2021年2月 (709)
- 2021年1月 (1521)
- 2020年12月 (3626)
- 2020年11月 (1646)
- 2020年10月 (1046)
- 2020年9月 (592)
- 最近发表
-
- 清远信息:2024年广清杯清远南粤家政技能大赛举行决赛|||计算机培训机构
- 汕尾信息:陈良川带队到汕尾技师学院调研|||计算机职业技能培训班
- 东莞信息:凤岗凤岗镇组织召开社保参保缴费及劳动用工政策宣讲会|||计算机软件培训学校
- 阳江信息:2024年度注册城乡规划师职业资格考试的合格标准是怎样的?|||计算机软件培训学校
- 阳江信息:职业技能提升补贴对象有哪些?|||大学生计算机培训学校
- 清远信息:清远市首家社保服务合作网点在清城区举办启动仪式|||计算机职业技能培训班
- 汕头信息:招聘658名中高端人才!2024年汕头市引进中高端人才专场招聘会举行|||北大青鸟计算机培训中心
- 东莞信息:广东省社保智能经办现场会在东莞召开|||大学生计算机培训学校
- 东莞信息:东坑镇举办2024年重点群体系列招聘活动|||计算机职业技能培训班
- 东莞信息:万江万江街道成功举办第四届粤菜师傅烹饪技能竞赛|||广州计算机编程培训