三道JAVA上机编程题,求大神帮忙,做了很久,没做出来
1、读取一个人Java源程序,输出并统计其中所用的关键字2、编写应用程序,列出指定目录下的所有文件和目录名,然后将该目录下的所有文件后缀名为.txt的文件过滤出来显示在屏...
1、读取一个人Java源程序,输出并统计其中所用的关键字
2、编写应用程序,列出指定目录下的所有文件和目录名,然后将该目录下的所有文件后缀名为.txt的文件过滤出来显示在屏幕上
3、编写应用程序创建一个RandomAccessFile类的对象,使用readFully()方法读取该程序起始位置的20个字节数据,并显示在屏幕上 展开
2、编写应用程序,列出指定目录下的所有文件和目录名,然后将该目录下的所有文件后缀名为.txt的文件过滤出来显示在屏幕上
3、编写应用程序创建一个RandomAccessFile类的对象,使用readFully()方法读取该程序起始位置的20个字节数据,并显示在屏幕上 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)+提问者悬赏10(财富值+成长值)
3个回答
展开全部
第二题
一个doDemo方法搞定
这个是列出D盘下所有文件及文件目录,然后再列出所有的.txt后缀的文件。
static List<String> allList = new ArrayList<String>();
static List<String> txtList = new ArrayList<String>();
public static void doDemo() {
File file = new File("D:" + File.separator);
if (null == file)
return;
allList.clear();
txtList.clear();
listAllFile(file);
for (String p : allList) {
System.out.println("file: " + p);
}
for (String txt : txtList) {
System.out.println("txt file: " + txt);
}
}
public static void listAllFile(File dir) {
if (null == dir || !dir.exists()) {
return;
}
if (dir.isDirectory()) {
File[] files = dir.listFiles();
if (null != files) {
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
listAllFile(files[i]);
} else {
String fileName = files[i].getName();
if (fileName.endsWith(".txt")) {
txtList.add(files[i].getPath());
}
allList.add(files[i].getPath());
}
}
}
} else {
allList.add(dir.getPath());
}
}
追问
是完整的程序吗?还是一部分?
追答
重新优化下代码
第二题是 显示 所有文件以及文件目录,上面的demo 只显示所有文件而没有显示所有文件目录,下面的代码把目录也显示出来。
static List<String> allList = new ArrayList<String>();
static List<String> txtList = new ArrayList<String>();
public static void doDemo() {
File file = new File("F:" + File.separator);
if (null == file)
return;
allList.clear();
txtList.clear();
listAllFile(file);
for (String p : allList) {
System.out.println(p);
}
for (String txt : txtList) {
System.out.println(txt);
}
}
public static void listAllFile(File dir) {
if (null == dir || !dir.exists()) {
return;
}
if (dir.isDirectory()) {
File[] files = dir.listFiles();
if (null != files) {
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
listAllFile(files[i]);
allList.add("_____folder: " + files[i].getPath());
} else {
String fileName = files[i].getName();
if (fileName.endsWith(".txt")) {
txtList.add("txt file: " + files[i].getPath());
}
allList.add("file: " + files[i].getPath());
}
}
}
} else {
allList.add("file: " + dir.getPath());
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/**
* 遍历指定目录及子目录下的文件
*
* @author test19375
* @date 2014年12月12日下午2:33:49
* @param file 要遍历的指定目录
* @param collector 符合条件的结果添加到此List<File>中
* @param pathInclude 路径中包含指定的字符串
* @param fileNameInclude 文件名(不包含扩展名)中包含指定的字符串
* @param extnEquals 文件扩展名为指定字符串
* @throws IOException
*/
public static void listFiles(File file,List<File> collector, String pathInclude, String fileNameInclude, String extnEquals) throws IOException {
if (file.isFile()
&& (StringUtils.isBlank(pathInclude) || file.getAbsolutePath().indexOf(pathInclude) != -1)
&& (StringUtils.isBlank(fileNameInclude) || file.getName().indexOf(fileNameInclude) != -1)
&& (StringUtils.isBlank(extnEquals) || file.getName().endsWith(extnEquals))
){
collector.add(file);
}
if((!file.isHidden() && file.isDirectory()) && !isIgnoreFile(file)) {
File[] subFiles = file.listFiles();
for(int i = 0; i < subFiles.length; i++) {
listFiles(subFiles[i],collector, pathInclude, fileNameInclude, extnEquals);
}
}
}
这个可以帮你实现第二题的功能;
更多追问追答
追问
是完整的程序吗?还是一部分?
追答
部分程序。完整程序这点分没人写的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第2题
列出目录中所有子文件或目录 不会列出子目录下面的工具方法
public void listFile1(File files){
if(files.isFile()){
System.out.println("请给我传一个目录");
}
String[] s=files.list();
if(s.length==0){
System.out.println("空目录");
return;
}else{
for(String name:s){
System.out.println(name);
}
}
System.out.println();
}
列出.txt文件结尾的文件的工具方法:
public static void listFile3(File f){
String[] names=f.list(new FilenameFilter(){
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
});
for(String s:names){
System.out.println(s);
}
}
列出目录中所有子文件或目录 不会列出子目录下面的工具方法
public void listFile1(File files){
if(files.isFile()){
System.out.println("请给我传一个目录");
}
String[] s=files.list();
if(s.length==0){
System.out.println("空目录");
return;
}else{
for(String name:s){
System.out.println(name);
}
}
System.out.println();
}
列出.txt文件结尾的文件的工具方法:
public static void listFile3(File f){
String[] names=f.list(new FilenameFilter(){
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
});
for(String s:names){
System.out.println(s);
}
}
追问
是完整的程序吗?还是一部分?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询