如何把目录下文件名写到一个list中去?

angeltw 2011-08-12 02:09:04
好久没写java了,今天有个需求比较急,也来不及研究了,上来请教一下。
把一个目录下的文件名全取到然后写到一个list.txt中去。现在文件名可以全部取到了,放在一个array里面,怎么写到txt文件里呢?急问。最后list.txt里面就是这种格式:

c:\test\abc.out
c:\test\bbb.txt
c:\test\mem.xml


每个文件名要一行,谢谢
...全文
305 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
angeltw 2011-08-15
  • 打赏
  • 举报
回复
非常感谢,准备结贴了~
Java高知社区 2011-08-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fengyun817 的回复:]

调用 writeTxtFile 方法即可

Java code

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Array……
[/Quote]
顶一个
skyWalker_ONLY 2011-08-13
  • 打赏
  • 举报
回复
很多方法啊
molaifeng 2011-08-13
  • 打赏
  • 举报
回复
我也来练练手

import java.io.*;
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();
}
}
molaifeng 2011-08-13
  • 打赏
  • 举报
回复
我也来练练手

import java.io.*;
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();
}
}
flyingZippo 2011-08-13
  • 打赏
  • 举报
回复
printwriter
aotian16 2011-08-12
  • 打赏
  • 举报
回复
学习了
luohuijun619 2011-08-12
  • 打赏
  • 举报
回复
用文件流写进出
FileWriter
fengyun817 2011-08-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 angeltw 的回复:]

非常感谢,有没有办法按照时间顺序把目录下的文件放到list里面?谢谢
[/Quote]

写个比较器

  //按修改日期的比较器
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 即可
}
liuyuhua0066 2011-08-12
  • 打赏
  • 举报
回复
File有个lastModified方法,可以获得文件最后一次被修改的时间,你可以根据这个时间排列文件。
angeltw 2011-08-12
  • 打赏
  • 举报
回复
非常感谢,有没有办法按照时间顺序把目录下的文件放到list里面?谢谢
liuyuhua0066 2011-08-12
  • 打赏
  • 举报
回复
简单写了个,没有做扩展。

public class Write {

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();
}
}
}
jiangbao1982 2011-08-12
  • 打赏
  • 举报
回复
BufferedWriter out = null;
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();
}

借鉴一下吧,文本写
meran 2011-08-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fengyun817 的回复:]

调用 writeTxtFile 方法即可

Java code

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Array……
[/Quote]
乐于助人啊
fengyun817 2011-08-12
  • 打赏
  • 举报
回复
调用 writeTxtFile 方法即可


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;
}
}
1.linux系统介绍 以windows为内核的操作系统有哪些:win10   win8   win7  xp  系统    windows server 以linux为内核的操作系统有哪些:centos  ubuntu  debian   windows和linux  linux:服务器   安全    稳定 高效    windows:办公  家用  2.安装linux注意事项 对centos系统 的基本使用   有哪些文件夹   对文件/文件夹 进行操作  创建 删除  修改 移动 复制   写入 home 存放所有用户文件的根目录  soft :安装软件 cd  ll mkdir 创建文件  touch 空文件  echo sdsd>a.txt       vi a.txt vi c.txt  打开文件  按下i键  改为写入的模式    写完之后保存: 先按下esc 按键再按下:w 保存 :q退出  :wq    写完之后不想保存 强制退出  esc  :q! 删除文件/文件夹 rm -rf a.txt  b.txt rm -rf soft 复制 如果复制文件 cp  要复制的文件名   复制出来的文件名子    cp  a.txt   a1.txt 如果复制的是文件夹的 cp -r soft/   soft1 展示一个文件中的内容 cat  移动文件  mv  temp1   temp2 重命名 mv  temp1   temp2 查找: find /(查找的路径)  -name   *.txt    b 清屏  clear tab 按键 可以帮助我们把输入的内容补全   3.配置局域网  需要通过ssh软件远程操作linux系统 远程操作centos系统  在windows操作系统中通过一款软件来远程操作虚拟电脑中的centos系统  ssh软件: xshell  secureCRT 第一步在win10系统中下载并且安装ssh软件 secureCRT    第二步:只要知道centos系统所在电脑的公网IP  登录账户和密码      /  win10和centos系统所在的两台电脑在同一个局域网内  局域网IP  登录账户和密码 第三步:centos系统 进行局域网的设置 往网卡中写入一些数据   win10写入的方式:桌面的化操作和centos系统写入的方式是不一样的  ip 网关 子网掩码 NM_conteolle。。。 命令  找到往网卡写入数据的文件    重新启动网络服务 开启22端口   重启防火墙服务 网络桥接网络  *************************端口是否开启  4.配置外网  下载软件1.下载并且安装到系统中 node.js环境   npm install bootstrap   默认的镜像库 centos系统    yum install  服务名     默认的镜像库  2.自己下载服务  wget 服务的网络地址 自己单独安装  比较灵活 安装难度大 windows系统  exe文件 linux       rpm包

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧