按行读取文件
اختبار الحزمة استيراد java.io.*؛ استيراد java.util.*؛ الفئة العامة readtest {قائمة ثابتة عامة <string> first_list ؛ القائمة الثابتة العامة <string> second_list ؛ readtest العامة () {first_list = new LinkedList <> () ؛ second_list = new LinkedList <> () ؛ } public static void readfile () {Final String FileName = "d: //aa.txt" ؛ سلسلة str = null ؛ int i = 0 ؛ حاول {LinenumberReader reader = null ؛ reader = new linenumberReader (New FileReader (filename)) ؛ بينما ((str = reader.readline ())! = null) {if (! str.isempty ()) {string stable [] = str.split ("") ؛ first_list.add (القيم [0]) ؛ second_list.add (القيم [1]) ؛ }}} catch (ioException e) {E.PrintStackTrace () ؛ }} public static void main (String args []) {readtest reader = new readtest () ؛ reader.ReadFile () ؛ لـ (int i = 0 ؛ i <first_list.size () ؛ i ++) {system.out.println (first_list.get (i) + ":" + second_list.get (i)) ؛ }}}递归遍历目录
فئة ListFiles {public static arraylist fileList = new ArrayList () ؛ public static void listfiles (string dir) {file file = new file (dir) ؛ file [] files = file.listfiles () ؛ if (null == files) {return ؛ } لـ (int i = 0 ؛ i <files.length ؛ i ++) {if (files [i] .isdirectory ()) {listfiles (files [i] .getabsolutepath ()) ؛ } آخر {system.out.println (files [i]) ؛ FileList.add (ملفات [i]) ؛ }}}} : : : :
// 非递归 الفكاتية الفاخرة الثابتة العامة (مسار السلسلة) {LinkedList List = New LinkedList () ؛ ملف dir = ملف جديد (path) ؛ ملف الملف [] = dir.listfiles () ؛ لـ (int i = 0 ؛ i <file.length ؛ i ++) {if (file [i] .isdirectory ()) list.add (file [i]) ؛ else {system.out.println (file [i] .getabsolutepath ()) ؛ num ++ ؛ }} ملف tmp ؛ بينما (! list.isempty ()) {tmp = (file) list.removefirst () ؛ // 首个目录 if (tmp.isdirectory ()) {file = tmp.listfiles () ؛ إذا (ملف == فارغ) متابعة ؛ لـ (int i = 0 ؛ i <file.length ؛ i ++) {if (file [i] .isdirectory ()) list.add (file [i]) ؛ // 目录则加入目录列表 , 关键 {system.out.println (file [i]) ؛ num ++ ؛ }}} آخر {system.out.println (tmp) ؛ num ++ ؛ }}} : :
استيراد java.io.file ؛ استيراد java.util.linkedList ؛ نظام ملفات الفئة العامة {public static int num ؛ public static void main (string [] args) {long a = system.currentTimeMillis () ؛ // string path = "c:" ؛ num = 0 ؛ string [] siles = {"c:" ، "d:"} ؛ /* for (int i = 0 ؛ i <lists.length ؛ i ++) {file file = ملف جديد (قوائم [i]) ؛ الفجر (ملف) ؛ */ for (int i = 0 ؛ i <lists.length ؛ i ++) {scandirnorecursion (lists [i]) ؛ } system.out.print ("文件总数:"+num) ؛ System.out.print ("总耗时:") ؛ System.out.println (System.CurrentTimeMillis () - A) ؛ } : :
: :
文件总数: 189497 总耗时: 39328
: :
文件总数: 189432 总耗时: 37469
这里非递归相对要好 ~