读写字符流 FileReader、FileWriter

来源:互联网 发布:将ubuntu系统安装到u盘 编辑:程序博客网 时间:2024/05/13 09:34
package test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.TreeMap;

/**
 * 测试文件读取
 * @author Administrator
 *
 */
public class FileTest
{
    public static void main(String[] args)
    {
        try
        {
            // String teststr=test();
            FileWriter fw = new FileWriter("c:/test.txt");
            BufferedWriter bw = new BufferedWriter(fw);
            // 换行操作符
            String str = System.getProperty("line.separator");
            bw.write("我爱大海,我爱蓝天;我爱大海,我爱蓝天" + str);
            bw.write("我爱大海,我爱蓝天;我爱大海,我爱蓝天" + str);
            bw.flush();
            fw.close();
            bw.close();
            // 逐行读取文件
            FileReader fr = new FileReader("c:/test.txt");
            BufferedReader br = new BufferedReader(fr);

            String strline = null;
            int line = 1;
            // 一次读入一行,直到读入null为文件结束
            while ((strline = br.readLine()) != null)
            {
                // 显示行号
                System.out.println("line " + line + ": " + strline);
                line++;
            }

            fr.close();
            br.close();
            // 整个读取文件
            FileInputStream fis = new FileInputStream("c:/test.txt");
            byte[] bt = new byte[1024];
            fis.read(bt);
            fis.close();
            String filestr = new String(bt);
            filestr = filestr.trim();
            TreeMap tm = new TreeMap();
            /**
             * 统计文件中个字符的个数
             *
             * **/
            for (int i = 0; i < filestr.length(); i++)
            {
                String temp = filestr.substring(i, i + 1);
                if (tm.containsKey(temp))
                {
                    int cs = Integer.valueOf(tm.get(temp).toString());
                    tm.put(temp, cs + 1);
                }
                else
                {
                    tm.put(temp, 1);
                }
            }
            tm.toString();
            System.out.println(tm.toString());
        }
        catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

后台输出:


line 1: 我爱大海,我爱蓝天;我爱大海,我爱蓝天
line 2: 我爱大海,我爱蓝天;我爱大海,我爱蓝天
{
=1,
=1, ;=2, 大=4, 天=4, 我=8, 海=4, 爱=8, 蓝=4, ,=4}




0 0