问题:如题指定读取D:\bank\目录下的所有文件,文件内容以逗号隔开,分别读取每行中的每个字段的内容
1602000000,001C1224,777777777771,000000021001,1,1,2100.00,0.00
请大家提供一个这样的例题,没时间写了,希望有个现成的修改一下,比较急。

解决方案 »

  1.   

    比较基础的题目,不知道楼主需要读取的是什么类型的文件今天比较有时间,我就以txt类型的为例子了,写了个简单的
    已经测试通过。
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileFilter;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;
    /**
     * 
     * @author jishu_vip
     *
     */
    public class GetAndReadAllFile {
    /**
     * 获取一个文件夹下的所有文件
     * 要求:后缀名为txt (可自己修改)
     * @param file
     * @return
     */
    public static List<String> getFileList(File file) {
    List<String> result = new ArrayList<String>();
    if (!file.isDirectory()) {
    System.out.println(file.getAbsolutePath());
    result.add(file.getAbsolutePath());
    } else {
    //内部匿名类,用来过滤文件类型
     File[] directoryList=file.listFiles(new FileFilter(){
    public boolean accept(File file) {
    if (file.isFile() && file.getName().indexOf("txt") > -1) {
    return true;
    } else {
    return false;
    }
    }
     });  
     for(int i=0;i<directoryList.length;i++){ 
     result.add(directoryList[i].getAbsolutePath());
     }
    }
    return result;
    }

    /**
     * 以UTF-8编码方式读取文件内容
     * @param path
     * @return
     * @throws IOException
     */
    public static String  getContentByLocalFile (File path) throws IOException{
    InputStream input=new FileInputStream(path);
    InputStreamReader reader=new InputStreamReader(input,"utf-8");
         BufferedReader br = new BufferedReader(reader);
         StringBuilder builder = new StringBuilder();
         String temp = null;
            while((temp = br.readLine())!=null){
              builder.append(temp);
            }
            return builder.toString();
    } /**
     * @param args
     */
    public static void main(String[] args) throws IOException{
    //Test get and read all file
    List<String> fileList=getFileList(new File("F:\\test"));
    String fileContent=null;
    String[] content = null;
    for(String s:fileList){
    //打印文件名
    System.out.println(s);
    //文件内容
    fileContent=getContentByLocalFile (new File(s));
    //打印文件内容
    System.out.println(fileContent);
    //以逗号为单位进行拆分字段
    content=fileContent.split(",");
    for(String c:content){
    System.out.print(c+"\t");
    }
    System.out.println();

    }
    }}
      

  2.   


    public class Test {   
      public static void main(String [] args) throws Exception{
     File folder=new File("d:\\test");
     File[] entries=folder.listFiles();
     int b=0;
     for(File f:entries){
     System.out.println(f.getName());
     FileReader fr=new FileReader(f);
     StringBuffer strbufer=new StringBuffer();
     while((b=fr.read())!=-1){
     if((char)b==','){
     System.out.println(strbufer);
       strbufer.delete(0, strbufer.length());
       }
     else 
     if(b==13){
     System.out.println(strbufer);
     strbufer.delete(0, strbufer.length());
     }
     else{
     strbufer.append((char)b);
     }
     }
     }
      } 
    }   
    经测试成功
      

  3.   

    out:
    新建 文本文档.txt
    xxx
    sss
    fff
    复件 新建 文本文档.txt
    xxx
    sss
    fff
    复件 复件 新建 文本文档.txt
    xxx
    sss
    fff
    复件 复件 复件 新建 文本文档.txt
    xxx
    sss
    fff
    复件 (2) 新建 文本文档.txt
    xxx
    sss
    fff
      

  4.   


    public class Test {   
      public static void main(String [] args) throws Exception{
     File folder=new File("d:\\test");
     File[] entries=folder.listFiles();
     int b=0;
     for(File f:entries){
     System.out.println(f.getName());
     FileReader fr=new FileReader(f);
     BufferedReader br=new BufferedReader(fr);
     String str="";
     while((str=br.readLine())!=null){
     String [] strArray=str.split(",");
     for(String s:strArray){
     System.out.println(s);
     }
     }
     br.close();
     fr.close();
    }
     }
      

  5.   

    部分代码截取:File fi = new File("D://bank//");
          File[] file = fi.listFiles(); //得到bank文件夹列表
          for (int i = 0; i < file.length; i++) { //循环bank文件夹
            if (file[i].isFile()) { //如果是文件就打印出来
              String filStr = file[i].getAbsolutePath(); //改一下这个地方这里是打出文件的绝对路径
              InputStreamReader read = new InputStreamReader(new FileInputStream(filStr), "GBK");
              BufferedReader reader = new BufferedReader(read);
              String line;
              int count = 0;
              String OPNO = "", GNIT ="";
              String[] content = null;          String fileStr = filStr.substring(8, 9);
              while ( (line = reader.readLine()) != null) { //逐行循环读取
                    count++;
                  content = line.split(",");
                  OPNO = content[3].trim(); //预算单位代码
                    OPTP = content[5].trim(); //预算种类
              }