一天一小步,人生一大步。
├学会总结╀学会记录╀学会生活┦

三、关于文件与流的问题

关于文件的操作,一长辈写的很全,我就抄一下:http://www.cnblogs.com/lovebread/archive/2009/11/23/1609122.html

1) 加载指定目录下面的所有文件

 1         //得到待导入的目标文件
 2         File fromFile=new File(frompath);
 3         if(!fromFile.isDirectory()){
 4             throw new Exception("请指定文件夹!");
 5         }
 6         //加载文件
 7         File[] fs=fromFile.listFiles();
 8         List<String> fileNames=new ArrayList<String>();        //文件名
 9         List<File> files=new ArrayList<File>();                //文件
10         //System.out.println("fs.length-->"+fs.length);
11         for (File f : fs) {
12             String fn=f.getName();
13             if((!f.isDirectory())&&(fn.endsWith(".txt"))){        //以.txt结尾,不是文件夹
14                 int i=fn.lastIndexOf(".");
15                 if((i>-1)&&i<fn.length())
16                     fn=fn.substring(0,i);
17                 //System.out.println("f.getName-->"+fn);
18                 fileNames.add(fn);
19                 files.add(f);
20             }
21         }

2) 写入文件

 1         //复制文件到指定目录,先得到目录,再复制,这里有个要注意的地方,要先在得到的目录下面new一个文件,然后才能把Java File对象的内容写到这个文件里面
 2         String tofilepath=sysRoot+"\\course\\user\\";
 3         int i=0;
 4         BufferedInputStream inBuff = null;
 5         BufferedOutputStream outBuff = null;
 6         for(i=0;i<files.size();i++){
 7             File file=new File(tofilepath,fileNames.get(i)+".le");
 8             if(!file.exists()){
 9                 file.createNewFile();
10             }
11             inBuff=new BufferedInputStream(new FileInputStream(files.get(i)));
12             outBuff=new BufferedOutputStream(new FileOutputStream(file));
13             byte[] buff=new byte[1024];
14             int len=0;
15             while((len=inBuff.read(buff))!=-1){
16                 outBuff.write(buff, 0, len);
17             }
18             outBuff.flush();
19         }
20         if (inBuff != null)
21             inBuff.close();
22         if (outBuff != null)
23             outBuff.close();

3) 文件里面的内容换行:

  String nextLine=System.getProperty("line.separator");//用于换行 ,这个需要配合下面的一起使用,写入到文件时才会换行。

  在windows下面\r\n是换行,所以也可以是:String newxLine="\r\n";         

4) 写入文件:

String tempStr="这个是第一行!";
tempStr+=nextLine+"这个是第二行!"
BufferedOutputStream writer=new BufferedOutputStream(new FileOutputStream(conf)); writer.write(tempStr.getBytes(),0,tempStr.length());

注意,是:writer.write(tempStr.getBytes(),0,tempStr);

   不是:writer.write(tempStr);

如果是下面一种,文件内容将不会换行

 

-----仅用于学习记录。

posted on 2012-07-04 23:58  .Xm  阅读(617)  评论(0编辑  收藏  举报