㈠ 用 java 做一個程序掃描指定的目錄及其所有的子目錄和文件,輸出格式要求如下(假設掃描C:) C:\ |--test
public static void main(String[] args) {
// TODO Auto-generated method stub
int j = 0;
while(j<5) {
File f = new File("c:/Mailboxes/in/");
File[] fArray = f.listFiles();
for(int i=0; i<fArray.length; i++) {
if(fArray[i].getName().matches("[\\w]*.EML$")) {
System.out.println(fArray[i].getName());
try {
FileInputStream is = new FileInputStream(fArray[i]);
byte[] b = new byte[(int)fArray[i].length()];
is.read(b);
FileOutputStream os = new FileOutputStream("森歲c:/mail/" + fArray[i].getName());
os.write(b);
os.close();
is.close();
fArray[i].delete();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
/讓春升/坦老 TODO Auto-generated catch block
e.printStackTrace();
}
j++;
}
}
㈡ 解決java讀取大文件內存溢出問題,如何在不
1、傳統的在內存中讀取
讀取文件行的標准方式是在內存中讀取,Guava 和Apache Commons IO都提供了如下所示快速讀取文件行的方法:
4、結論
這篇短文介紹了如何在不重復讀取與不耗盡內存的情況下處理大文件——這為大文件的處理提供了一個有用的解決辦法。
㈢ Java怎麼實現掃描多個目錄中(包括子目錄)的指定文件,並且刪除它們
思路如下使用遞歸來自
public static void de(File f)
{ File [] b = f.listFiles();
//獲取包含file對象對應的子目錄或者文件
for(int i =0;i<b.length;i++}{
if(b[i].isFile()){
b[i].delete(); //判斷是否為文件如果是 就刪除 }
else{ de(b[i]);//否則重新遞歸到方法中 }
} f.delete();//最後刪除該目錄中所有文件後就刪除該目錄 }
㈣ 如何用Java實現掃描本地文件夾中所有文本文件並判斷其內容,內容超過10行就分割分割的內容放入新文件
用Scanner讀臘孫取文件,用它的nextLine方法讀取下一行,當超過10行以後,每輪孝鏈十行綁在一起用FileWriter寫入一個新文件
------------------------------------------------------------------------------
是在內存中處理的啊慎戚..至於你要時間限制就不好說了...畢竟CPU的處理能力有別..
㈤ java編輯一個掃描文件的方法,要求可以掃描根目錄下的所有文件
package com.sunjob;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
public class Js {
/**
* @param args
*/
//初始化n,用於計數
static int n=0;
public static void get(File file) {
try {
//判斷文件是否是文件,如果是文件,獲取路徑,並計數
if(file.isFile())
{
n++;
System.out.println(file.getAbsolutePath());
}
else
{
//如果是文件夾,聲明一個數組放文件夾和他的子文件
File[] f=file.listFiles();
//遍歷文件散余指件沖配下的文件,並獲取路徑
for (File file2 : f) {
get(file2);
}
}
} catch (RuntimeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
/毀岩/ TODO Auto-generated method stub
這是掃描c盤的所有文件,可以修改
File file=new File("c:\\");
get(file);
System.out.println("文件個數為:"+n);
}
}
㈥ JAVA中hashNextLine的用法。
java語言中hasNextLine用於控制台輸入或者讀取文本文件時的輸入掃描器(java.util.Scanner類)掃描,當掃描到存在下一行時,hasNextLine返回true,沒有下一行輸入或者文本文件沒有下一行時,返回false.
一般用於讀取文本文件或控制台輸入的數據時,while循環的判斷條件,比如 while(in.hasNextLine()),如果有下一行就執行while循環,沒有就跳出while循環
下面就給你一個用hasNextLine函數讀取用戶名密碼文件(abc.txt),並對用戶名密碼切分後輸出的Java程序的例子,你看看吧.(程序每句都有注釋)
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.util.Scanner;
publicclassReadtxt{
publicstaticvoidmain(String[]args){
try{
Scannerin=newScanner(newFile("d:/abc.txt"));//打開一個文件用簡單文本掃描器掃描
while(in.hasNextLine()){//如果文件中還有下一行則繼續執行
Stringstr=in.nextLine();//取出文件中這一行賦給變數str
splitt(str);//調用自定義splitt函數輸出
}
}catch(FileNotFoundExceptione){//捕獲打開文件時文件不存在異常
e.printStackTrace();//列印異常信息
}
}
publicstaticvoidsplitt(Stringstr){//自定義函數splitt
Stringstrr=str.trim();//去除字元串前後空格
String[]abc=strr.split("[\p{Space}]+");//按照字元串中間的空格切分字元串形成字元串數組
Stringstr1=abc[0];//切分出的數組第一個字元串賦給str1
Stringstr2=abc[1];//切分出的數組第二個字元串賦給str2
System.out.println(str1);//列印str1到控制台上
System.out.println(str2);//列印str2到控制台上
}
}d盤根目錄下的abc.txt文件內容
zhangsan123456
lisi112345
wangwu111234
運行結果
zhangsan
123456
lisi
112345
wangwu
111234