三道JAVA上机编程题,求大神帮忙,做了很久,没做出来

1、读取一个人Java源程序,输出并统计其中所用的关键字2、编写应用程序,列出指定目录下的所有文件和目录名,然后将该目录下的所有文件后缀名为.txt的文件过滤出来显示在屏... 1、读取一个人Java源程序,输出并统计其中所用的关键字
2、编写应用程序,列出指定目录下的所有文件和目录名,然后将该目录下的所有文件后缀名为.txt的文件过滤出来显示在屏幕上
3、编写应用程序创建一个RandomAccessFile类的对象,使用readFully()方法读取该程序起始位置的20个字节数据,并显示在屏幕上
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)+提问者悬赏10(财富值+成长值)
百度网友d8bafc3aad
推荐于2017-10-15 · TA获得超过150个赞
知道小有建树答主
回答量:209
采纳率:0%
帮助的人:104万
展开全部

第二题 

一个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());
}

}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
test19375

2014-12-23 · TA获得超过1527个赞
知道小有建树答主
回答量:1969
采纳率:45%
帮助的人:375万
展开全部
/**
 * 遍历指定目录及子目录下的文件
 * 
 * @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);
}
}
}

这个可以帮你实现第二题的功能;

更多追问追答
追问
是完整的程序吗?还是一部分?
追答
部分程序。完整程序这点分没人写的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
申寒烟St
2014-12-23
知道答主
回答量:41
采纳率:0%
帮助的人:7.8万
展开全部
第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);
}

}
追问
是完整的程序吗?还是一部分?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式