Java IO

来源:互联网 发布:唐山it培训 编辑:程序博客网 时间:2024/06/05 04:44

1.创建文件“word”,向文件写入数据“aaaabbcccccccc冯凤冯凤居然找到了共同点。。。”,创建一个目录”D:/worddir”,复制文件到该目录,然后将其删除,移动文件到该目录,算出该文件中的数据中的字母以及汉字出现的次数,在控制台显示出来。

package com.hhl.io;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.HashMap;public class SumDay {    public static void main(String[] args) throws IOException {        //创建文件        File wordFile = new File("D:/word");        wordFile.createNewFile();        //写入数据        FileWriter wordFos = new FileWriter(wordFile);        wordFos.write("aaaabbcccccccc冯凤冯凤居然找到了共同点。。。");        wordFos.close();        //创建一个目录        File dir = new File("D:/worddir");        dir.mkdirs();        //复制文件到指定目录        File fileTo = new File("D:/worddir/word");        FileReader fis = new FileReader(wordFile);        FileWriter fos = new FileWriter(fileTo);        int len = 0;        while ((len=fis.read())!=-1) {            char c = (char)len;            System.out.println(c);            fos.write(c+"");        }        fis.close();        fos.close();        //删除文件        fileTo.delete();        //移动文件到指定目录        File fileTo2 = new File("D:/worddir/word");        wordFile.renameTo(fileTo2);        //算出每个字母出现的次数        int count = 0;        HashMap<Character, Integer> hashMap = new HashMap<Character, Integer>();        FileReader fr = new FileReader(fileTo2);        while ((len=fr.read())!=-1) {            char c = (char)len;            try {                count = hashMap.get(c);            } catch (Exception e) {                // TODO: handle exception            }            hashMap.put(c, count+1);            count = 0;        }        fr.close();        System.out.println(hashMap);    }}

2.遍历目录下的所有文件,采用递归方式,并找出“.java”结尾的文件

package com.hhl.io;import java.io.File;import java.util.ArrayList;import java.util.List;public class SumBIan {    public static void bianLi(File dir,List<File> files){        File[] fileArr = dir.listFiles();        if (fileArr==null) {            return;        }        for(File file:fileArr){            files.add(file);            bianLi(file, files);        }    }    public static List<File> getAll(String d){        File file = new File(d);        List<File> files = new ArrayList<File>();        if (file.exists()&&file.isDirectory()) {            bianLi(file, files);        }        return files;    }    public static void main(String[] args) {        List<File> files = getAll("D:/javatest");//输入你想输入的目录        for(File file :files){            if (file.getName().toString().endsWith(".java")) {                System.out.println(file.getName());            }        }    }}

其中有一段代码:

其中,return返回到哪里,我设置了断点进行追踪
当执行到return时,下一步跳出的是下图所示的bianli方法

这里写图片描述

而不是

这里写图片描述

接着继续执行循环,如图:

这里写图片描述

3.创建文件时注意例如创建“HelloWorld.txt”的记事本文件时,我们在电脑中有可能这样创建

这里写图片描述

想用这个文件时需要这样写:

File file = new File("D:/HelloWorld.txt.txt");

需要有两个txt,因为“HelloWorld.txt”本就是它的名字,这点有可能忘记了,需要注意。

原创粉丝点击