JAVA IO的学习与理解

最近围绕IO流做了两个小项目--文件搜索器和复制粘贴功能。

我的文件搜索器算法代码如下:

JAVA IO的学习与理解_第1张图片

这里我对搜索算法进行了重载来确保有无关键字情况下的搜索。为了方便代码的更改,在内部封装好两个方法,在外部监听器内用getTex()方法获取输入语句t判断有无关键字选择调用对应的方法。在文件搜索时先获取了文件的路径,然后判断是文件还是文件夹,如果是文件则在文本区用append追加文件的绝对路径,如果为文件夹则继续递归查找文件夹目录下的文件及文件夹。在其中还添加了计数器用来分别记录文件和文件夹的个数。实际运行效果如图:JAVA IO的学习与理解_第2张图片

复制粘贴算法代码如下:

JAVA IO的学习与理解_第3张图片

JAVA IO的学习与理解_第4张图片JAVA IO的学习与理解_第5张图片




最开始的时候我用一个字符一个字符的读取来测试,读完两兆的照片大概用了2分钟左右,之后改成数组字节流后,一次存入数组的长度的字节,速度要比原来快乐许多。但完成后我遇到一个问题,我思来想去反复斟酌代码还是找不出问题。我从windows直接拷贝的路径复制粘贴无法再窗口实现,而把路径粘贴到eclipse之后再重新粘贴到我的窗体的文本框中,就可以完成复制粘贴功能了,最后在咨询斌哥后才得知这是由于我当前电脑系统的字符集和我eclipse的字符集不兼容。但当前阶段的基本功能已经可以实现了。当然IO 流还用很多内容,比如BufferedInputStream 和BufferedOutputStrream 缓冲区对象都定义了一个大小为8192的字节数组,有效的提高了程序的读写效率,例如BufferedWriter和BufferedReader的字符流缓冲区也都大大的提高了程序的读写效率。当然对于IO 流我学到的知识还是很浅显的,之后更应该加深这方面的学习来提升自己。




你可能感兴趣的:(java,递归,IO流,学习心得)