好久没写java了,今天有个需求比较急,也来不及研究了,上来请教一下。
把一个目录下的文件名全取到然后写到一个list.txt中去。现在文件名可以全部取到了,放在一个array里面,怎么写到txt文件里呢?急问。最后list.txt里面就是这种格式:c:\test\abc.out
c:\test\bbb.txt
c:\test\mem.xml
每个文件名要一行,谢谢
把一个目录下的文件名全取到然后写到一个list.txt中去。现在文件名可以全部取到了,放在一个array里面,怎么写到txt文件里呢?急问。最后list.txt里面就是这种格式:c:\test\abc.out
c:\test\bbb.txt
c:\test\mem.xml
每个文件名要一行,谢谢
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.ArrayList;
public final class FileUtil { //删除指定的文件
public static boolean delete(String filepath)
{
File fp = null;
try
{
if (filepath == null || filepath.trim().length() == 0)
{
return false;
}
fp = new File(filepath);
if (!fp.exists())
{
throw new IllegalArgumentException("源文件目录:'"+filepath+"'不存在,请确认目录");
//return false;
}
return fp.delete();
}catch(Exception e)
{
e.printStackTrace();
return false;
}
} //检查文件是否存在
public static boolean checkFileExist(String filepath) {
if (filepath == null || filepath.trim().length() == 0)
return false; File fp = new File(filepath);
if (!fp.exists())
return false;
if (!fp.isFile())
return false; return true;
}
// 向文件写文本内容
public static boolean writeLineFile(RandomAccessFile file, String lineTxt, boolean isRW)
{
boolean result = true;
try
{
String str = lineTxt + "\r\n";
byte[] strTxt = str.getBytes();
if (isRW)
{
file.write(strTxt);
}
} catch (Exception e)
{
e.printStackTrace();
}
return result;
}
//读文本文件内容,全部读取,放在数组里
public static ArrayList<String> readTxtFile(String fileName) throws IOException, Exception
{
ArrayList<String> txtList = new ArrayList<String>();
File file = new File(fileName);
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String tempString = null;
//一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null)
{
txtList.add(tempString);
}
} catch (IOException e)
{
e.printStackTrace();
} finally {
if (reader != null){
try
{
reader.close();
} catch (IOException ex)
{
ex.printStackTrace();
}
}
}
return txtList;
} //写文件方法
public static boolean writeTxtFile(String fileName, ArrayList<String> lineTxt) throws IOException, Exception
{
boolean result = true;
//检查文件是否存在
result = FileUtil.checkFileExist(fileName);
//存在,先删除文件
result = (result) ? FileUtil.delete(fileName) : true;
//打开文件
if (result)
{
RandomAccessFile file = null;
try
{
file = new RandomAccessFile(fileName, "rw");
for (int i = 0; i < lineTxt.size(); i++)
{
//写一行文件内容
result = result && FileUtil.writeLineFile(file, lineTxt.get(i).toString(), true);
}
} catch (Exception e)
{
} finally
{
if(file != null)
try
{
file.close();
} catch (IOException ex)
{
ex.printStackTrace();
}
}
}
return result;
}
}
String outFileName = list.txt;
out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(outFileName), "SHIFT-JIS"));
//出力内容を設定する
out.write(SwCommonConstant.CS3D070_TEXT_OPERATION_NAME+","+" "+currentdateTime);
out.newLine();
out.newLine();
out.write(SwCommonConstant.CS3D070_DATE+","+SwCommonConstant.CS3D070_USER_ID+","+SwCommonConstant.CS3D070_OPEOBJ+","+SwCommonConstant.CS3D070_OPETION);
out.newLine();
out.close();
File file = new File(outFileName);
// ファイルを出力する。
InputStream inStream = new FileInputStream(file);
byte[] bytes = new byte[1000];
response.reset();
response.setContentType("bin");
outFileName=new String(outFileName.getBytes("SHIFT-JIS"),"ISO8859-1");
response.addHeader("Content-Disposition", "attachment;filename="
+ outFileName);
int len;
try {
while ((len = inStream.read(bytes)) > 0)
response.getOutputStream().write(bytes, 0, len);
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}借鉴一下吧,文本写
public static void main(String[] args){
List<String> list=new ArrayList<String>();
list.add("c:/test/abc.out");
list.add("c:/test/ddd.txt");
list.add("c:/test/aad.xml");
try {
Writer writer=new FileWriter("c:/list.txt");
for(String str:list){
writer.write(str+System.getProperty("line.separator"));
}
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
写个比较器 //按修改日期的比较器
class CompratorByLastModified implements Comparator
{
//实现接口compare方法
public int compare(Object o1, Object o2)
{
File file1 = (File)o1;
File file2 = (File)o2;
long diff = file1.lastModified() - file2.lastModified();
if (diff > 0)
return 1;
else if (diff == 0)
return 0;
else
return -1;
}
public boolean equals(Object obj){
return true;
} }然后
File fileRoot = new File(filepath);
if (fileRoot.isDirectory())
{
File[] fileList = fileRoot.listFiles(new FileFilter());
Arrays.sort(fileList,new CompratorByLastModified());//这里排序
//fileList 放入ArrayList 即可
}
import java.util.*;public class ListFiles {
public static void main(String[] args) throws Exception{
File f = new File("F:/java");
BufferedWriter bw = new BufferedWriter(new FileWriter("F:/list.txt"));
List<String> list = new ArrayList<String>();
File[] files = f.listFiles();
for (File file : files) {
if (file.getName().endsWith(".java")) {
list.add(file.getName());
}
}
for (int i = 0;i < list.size(); i++ ) {
bw.write(list.get(i));
bw.newLine();
}
bw.flush();
bw.close();
}
}
import java.util.*;public class ListFiles {
public static void main(String[] args) throws Exception{
File f = new File("F:/java");
BufferedWriter bw = new BufferedWriter(new FileWriter("F:/list.txt"));
List<String> list = new ArrayList<String>();
File[] files = f.listFiles();
for (File file : files) {
if (file.getName().endsWith(".java")) {
list.add(file.getName());
}
}
for (int i = 0;i < list.size(); i++ ) {
bw.write(list.get(i));
bw.newLine();
}
bw.flush();
bw.close();
}
}