欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > Java第十一天(实训学习(十)Java IO流练习题)

Java第十一天(实训学习(十)Java IO流练习题)

2025/10/23 8:23:02 来源:https://blog.csdn.net/Li_030406/article/details/143586542  浏览:    关键词:Java第十一天(实训学习(十)Java IO流练习题)

练习:

1、利用File实现递归删除,写死。(删除从键盘输入的后缀名文件)

2、统计工作空间下Java文件,并输出代码行数

3、复制文件

package day1106;import java.io.*;
import java.nio.file.*;import java.nio.file.attribute.BasicFileAttributes;
import java.util.Locale;
import java.util.Scanner;public class Demo02 {private static  int number;private static long Count = 0;public static void main(String[] args) throws IOException {Scanner sc = new Scanner(System.in);do {System.out.println("请输入一个需要执行的序号:" + "\n" + "\t" + "1:删除文件" + "\n" + "\t" + "2:统计java文件" + "\n" + "\t" + "3:复制文件" + "\n" + "\t" + "4:退出");number = sc.nextInt();switch (number) {/*** 退出系统*/case 4:System.out.println("已退出!");break;/*** 删除文件*/case 1:Scanner scanner = new Scanner(System.in);System.out.println("请输入要删除的文件后缀名(不用加.):");String deletef = scanner.nextLine();deleteFilesdeletef(new File("G:/test/Dele/day1029"),deletef);System.out.println("所有后缀名为"+deletef+"的文件删除完成");//scanner.close();break;/*** 统计Java文件并输出代码行数*/case 2:Path rootPath = Paths.get("G:/test");Files.walkFileTree(rootPath, new SimpleFileVisitor<Path>() {@Overridepublic FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {if (file.toString().endsWith(".java")) {Count += Files.lines(file).count();}return FileVisitResult.CONTINUE;}});System.out.println("代码行数: " + Count);break;/*** 复制文件*/case 3:Path sourcePath = Paths.get("G:/shixun/test/src/cn/hxzy/pro/Demo01.java"); // 源文件路径Path destinationPath = Paths.get("G:/test/Dele/copytest/thistest.java"); // 目标文件路径try {Files.copy(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING);System.out.println("文件复制成功!");} catch (IOException e) {System.out.println("文件复制失败: " + e.getMessage());}break;default:System.out.println("输入无效,请重新输入一个正确的序号!");break;}} while (number != 4);}/*** 删除* @param*/public static void deleteFilesdeletef(File directory,String deletef) {File[] files = directory.listFiles();//File[] files = directory.listFiles((f) -> f.isFile() && f.getName().endsWith(i)); // 判断是否为.png文件if (files != null) {for (File file : files) {if (file.isDirectory()) {deleteFilesdeletef(file, deletef);}else {if (file.getName().toLowerCase(Locale.ROOT).endsWith("."+deletef)){boolean deleted =file.delete();if (!deleted){System.out.println("删除文件失败: " + file.getAbsolutePath());}}}}}}
}

练习:

通过字节输入和输出流实现将视频文件进行复制。

package day1106;import java.io.*;public class Demo03 {public static void main(String[] args) {/*** 通过字节输入和输出流实现将视频文件进行复制。*/try {// 源视频文件路径String Sourcepath = "https://files.youth.cn/video/zq_video/202411/P020241107344980818272.mp4";// 目标视频文件路径String Targetpath = "G:/test/Dele/测试/day1104";FileInputStream fis = new FileInputStream(Sourcepath);FileOutputStream fos = new FileOutputStream(Targetpath);byte[] buffer = new byte[1048576];int length;while ((length = fis.read(buffer)) != -1) {fos.write(buffer, 0, length);}fis.close();fos.close();System.out.println("视频复制成功!");} catch (IOException e) {System.out.println("发生错误:" + e.getMessage());}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词