java stringbuffer 输出,JAVA语言随机读取本地文件夹下面的所有文件,并通过StringBuffer换行输出...

本文详细介绍了如何使用Java编程语言从本地文件夹中随机选择不重复的文件路径,并通过StringBuffer进行换行输出。首先,通过遍历文件夹获取所有文件路径并存储在数组中,然后利用Random类随机选取一个文件路径,同时确保选取过程的不重复性。接着,通过BufferedReader逐行读取文件内容,将其存储在StringBuffer中,最终以字符串形式输出到控制台。文章适合有一定Java基础的学习者参考。

本文主要向大家介绍了JAVA语言随机读取本地文件夹下面的所有文件,并通过StringBuffer换行输出,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

题目详述:通过Java来从一个本地含有很多文件的文件夹下面获取文件路径,然后通过Random随机不重复选择一个文件路径,并通过字符串流的形式读取出来,并显示到控制台上面,如果你会写界面的话,还可以写到界面上,还是比较炫酷的哟!

分析

1,我们要想一下如何获取一个文件夹下面的所有文件的路径呢?

2,我们要想一下如何来从文件路径随机获取一个路径,注意;这里还是要不重复获取,这个主要是我在进行余弦距离比较的时候不能有两个相同的文档进行比较?

3,我们要想一下如何来通过StringBuffer来进行换行输出到控制台上或者Java界面上(后者仅仅进行拓展)?

采用方法

1,问题1嘛,其实也还是挺简单的,这里就给大家留一个小谜题,大家自己去想一下如何获取文件路径,并保存在一个String数组中;

2,问题2嘛,方法也有很多,我就直接用的是Random来实现,大家也可以用自己的方法;

3,问题3嘛,其实也比较简单,用输入输出流再加上StringBuffer的append方法追加到一个StringBuffer中,然后再转换(toString)为字符串String就行,最后再System.out.println(String)就行了(这里主要是为了封装的要好一些,个人习惯哈哈,完全可以不要封装,直接输出也可以)。

代码奉上

问题1代码省略,大家自行研究……

问题2代码:

//随机获取一个文件路径,七中flg_1为文件的总数目,为int型的

public static String RandomFile(){

int random_index = (int) (Math.random()*flg_1);

String str = null;

str = FileName[random_index];

FileName[random_index] = FileName[flg_1 - 1];

flg_1 --;

return str;

}

//解析:这里我们要实现不重复获取,也就是要获取一个就要将这个文件的路径从总数中减去,哈哈,学过C语言的都能看懂是那两步吧,没错,就是这两步:

FileName[random_index] = FileName[flg_1 - 1];

flg_1 --;

问题3代码:

public static StringBuffer getDocuments() throws IOException {

String filename = Indexer.RandomFile();//获取随机文件路径

FileInputStream fis = new FileInputStream(filename);//要读的文件

InputStreamReader isr = new InputStreamReader(fis);//字符流

BufferedReader br = new BufferedReader(isr);//缓冲

String line = null;

StringBuffer Str = new StringBuffer();

while((line = br.readLine()) != null){//读取的字符不等于空

Str.append(line);//一行一行的存入字符串流中

Str.append("\n");

//System.out.println(line + "\n");

}

br.close();

if(Str.length()!=0)

return Str;

return null;

}

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值