第一关
(编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
在src/output目录下创建hello.txt,test.txt文件。 需要先创建test.txt,后创建hello.txt。
注意:文件操作有异常需要抛出。 小贴士:在windows系统中文件目录表示方式为
D://XX.XX,在Linux中文件目录的表示方式为/xxdir/filename.txt
,在平台中使用的是Linux环境,所以编写代码的时候要使用Linux的目录方式哦。 测试说明补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。)
参考代码
package step1;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.Scanner;
public class Task {
/********* Begin *********/
public void solution() throws IOException {
try {
File file1 = new File("src/output/hello.txt");
File file2 = new File("src/output/test.txt");
file1.createNewFile();
file2.createNewFile();
}catch(IOException e){
e.printStackTrace();
}
}
/********* End *********/
}
第二关
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin -
End区域内进行代码补充,实现文件夹下所有文件信息的列出,删除指定文件夹,在文件夹下创建文件,具体要求如下:
在src/下创建文件夹test2文件夹; 删除src/output/下的test2.txt文件;
在src/test2/目录下创建helloworld.txt文件和step2.txt文件;
将src/output/目录和src/test2/目录下所有文件的文件名按升序排序并打印至控制台。
提示:可以使用Arrays.sort()函数进行排序,使用Arrays类中的方法需要导入:import java.util.Arrays 。
测试说明补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。 输出如下结果: output目录结构为:
a.txt b.txt c.txt hello.txt test.txt test2目录结构为: helloworld.txt
step2.txt
参考代码
package step2;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.Arrays;
public class Task {
public static void dcFile() throws IOException {
/********* Begin *********/
File file0=new File("src/test2");
file0.mkdir();
File file1=new File("src/output/test2.txt");
file1.delete();
File file2 = new File("src/output");
File file3=new File("src/test2/helloworld.txt");
File file4=new File("src/test2/step2.txt");
file3.createNewFile();
file4.createNewFile();
File[] files5=file0.listFiles();
Arrays.sort(files5);
File[] files6=file2.listFiles();
Arrays.sort(files6);
System.out.println("output目录结构为:");
for(File file :files6){
System.out.println(file.getName());
}
System.out.println("test2目录结构为:");
for(File file:files5){
System.out.println(file.getName());
}
/********* End *********/
}
}
第三关
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
实现对给定文件夹目录结构的展示,并以文件名按升序排序的形式打印至控制台。如果是文件夹则在其名字之前加上±-,若是文件则加上–,上级目录与下级目录、下级文件用两个空格作为间隔,补充完善右侧代码区中的showDirStructure(File dir)函数实现要求的功能,其中函数参数含义如下: 1).dir:指定要显示的文件夹。
注:main函数可点击右上角文件夹切换至本关Test.java文件进行查看。 测试说明补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。 样例1
输入:src/step3/root
输出:
样例2输入:src/step3/dir
输出:
参考代码
package step3;
import java.io.File;
import java.util.Arrays;
public class Task {
/********** Begin **********/
public void showDirStructure(File file) {
System.out.println("+--"+file.getName());
showDirTree(file," ");
}
public static void showDirTree(File dir,String interval){
File[] files=dir.listFiles();
Arrays.sort(files);
interval+=" ";
for(File file:files){
if(!file.isDirectory()){
System.out.println(interval+"--"+file.getName());
}
else{
System.out.println(interval+"+--"+file.getName());
showDirTree(file,interval+" ");
}
}
}
/********** End **********/
}
第四关
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
实现对给定文件夹目录结构的展示,并以文件名按升序排序的形式打印至控制台。如果是文件夹则在其名字之前加上±-,若是文件则加上–,上级目录与下级目录、下级文件用两个空格作为间隔,另外需要对文件进行过滤,只显示图片类型的文件,本关需要过滤的图片文件类型有:“jpg,png,bmp”,请补充完善右侧代码区中的showDirStructure(File
file)函数实现本关要求的功能,其中函数参数含义如下: 1). file:指定要显示的文件夹。 测试说明样例1
输入:src/step4/root
输出:
样例2输入:src/step4/dir
输出:
##
参考代码
package step4;
import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;
public class Task {
/********** Begin **********/
public void showDirStructure(File file) {
if(file.isDirectory()){
System.out.println("+--"+file.getName());
}
int Blank= 2;
showDir(file,Blank);
}
public static void showDir(File file,int Blank){
File[] files=file.listFiles();
Arrays.sort(files);
for(int i=0;i<files.length;i++){
if(files[i].isDirectory()){
for (int k = 0; k < Blank; k++){
System.out.print(" ");
}
System.out.println("+--" + files[i].getName());
showDir(files[i], Blank+2);
}
else{
int end = files[i].toString().indexOf(".");
String suffix = files[i].toString().substring(end+1);
if(suffix.equals("jpg") || suffix.equals("png") || suffix.equals("bmp")){
for (int k = 0; k < Blank; k++){
System.out.print(" ");
}
System.out.println("--" + files[i].getName());
}
}
}
}
/********** End **********/
}