㈠ 用 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