码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA-文件操作与输入输出流

时间:2018-12-30 02:51:37      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:string   stream   try   数据   close   成功   lin   class   ++   

JAVA-文件操作与输入输出流

问题描述

统计一篇中文文章中的字符数量、句子数量、段落数量。其中句子以各种标点符号分割,包括(。 ? !)。 如果文章中,中国石油大学后没有(华东)、加上 (华东);将文章中的计通学院,改为计算机与通信工程学院。

文件创建-file

文件的三种构造方法:

/*直接在该目录下创建啊*/
File fOutput = new File("output.txt");//写入的文件
        if(fOutput.exists()){
            System.out.println(fOutput.getName()+"创建成功");
        }
/*File(path,filename) 即路径和文件名*/
File fInput = new File("//home//phy//Desktop","in.txt");//读取的文件
        File fOutput = new File("//home//phy//Desktop","output.txt");//写入的文件
        if(fOutput.exists()){
            System.out.println(fOutput.getName()+"创建成功");
        }

第三种是目录和文件名

文件字符流+缓冲流

+文件字符流可以较好的读取Unicode字符
+缓冲流可以按行读取文件
+要求:文件字符输入流作为BufferedReader流的源,文件输出流作为BufferedWriter的目的地

int num=0,sum=0;
        try{
            Writer out = new FileWriter(fOutput); //字符输入流
            BufferedWriter bufferedWriter = new BufferedWriter(out);//连接FILE流
            Reader in = new FileReader(fInput);//字符输出流
            BufferedReader bufferedReader = new BufferedReader(in);//连接FILE流
            String txt=null;
            while ((txt=bufferedReader.readLine())!=null){
                num++;
                /*中句子以各种标点符号分割,包括(。 ? !)*/
                StringTokenizer stringTokenizer = new StringTokenizer(txt,"!,..!?");
               int count= stringTokenizer.countTokens();
               txt+="第"+num+"段落有"+count+"个句子";
               txt=txt.replace("中国石油大学(华东)","中国石油大学");
               txt=txt.replace("中国石油大学","中国石油大学(华东)");
               txt=txt.replace("计通学院","计算机与通信工程学院");
               sum+=txt.length();
               bufferedWriter.write(txt);
               bufferedWriter.newLine();//新一行
            }
            txt="文章共有"+num+"段";
            bufferedWriter.write(txt);
            bufferedWriter.newLine();
            bufferedWriter.write("文章共有"+sum+"个字符");
            bufferedWriter.close();//一定记得关闭
            /*多数IO方法在遇到错误时会抛出异常,因此调用这些方法时必须*/
        }catch(IOException e){
            System.out.println(e.toString());
        }

处理流

不直接与数据源或目标相连,而是基于另一个流来构造:

 File fInput = new File("input.txt");//读取的文件
  FileInputStream inn = new FileInputStream(fInput) ;
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inn) );
/*InputStreamReader读取字节并转换为字符
BufferedReader对另一个流产生的数据进行缓冲*/

JAVA-文件操作与输入输出流

标签:string   stream   try   数据   close   成功   lin   class   ++   

原文地址:https://www.cnblogs.com/smallocean/p/10198244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!