IO流:

处理数据类型:字节流(InputStream  OutputStream)和字节流(Reader  Writer)

数据流向不同:输入流和输出流(FileInputStream   FileOutputStream)

输入流:

  1. InputStream 是所有的输入字节流的父类,它是一个抽象类。
  2. ByteArrayInputStream、StringBufferInputStream、FileInputStream 是三种基本的介质流,它们分别从Byte 数组、StringBuffer、和本地文件中读取数据。
  3. ObjectInputStream 和所有FilterInputStream 的子类都是装饰流(装饰器模式的主角)。

输出流:

  1. OutputStream 是所有的输出字节流的父类,它是一个抽象类。
  2. ByteArrayOutputStream、FileOutputStream 是两种基本的介质流,它们分别向Byte 数组、和本地文件中写入数据。
  3. ObjectOutputStream 和所有FilterOutputStream 的子类都是装饰流

文件输入简单案例以及异常处理:

  1. package reserve;
  2.  
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.IOException;
  6.  
  7. import org.junit.Test;
  8.  
  9. public class Main{
  10. public static void main(String[] args) {
  11.  
  12. }
  13. @Test
  14. public void test() {
  15. FileInputStream input=null;
  16. try {
  17. input=new FileInputStream("Test/wenjian");
  18. int a=-1;
  19. while(true)
  20. {
  21. a=input.read();
  22. if(a==-1)
  23. break;
  24. System.out.print((char)a);
  25. }
  26. System.out.println((char)a);
  27. } catch (IOException e) {
  28. // TODO 自动生成的 catch 块
  29. e.printStackTrace();
  30. }
  31. finally {
  32. if(input!=null)
  33. try {
  34. input.close();//流的关闭是释放资源的操作
  35. } catch (IOException e) {
  36. // TODO 自动生成的 catch 块
  37. e.printStackTrace();
  38. }
  39. }
  40. }
  41.  
  42. }

测试截图:

  1. package money;
  2. import java.io.FileNotFoundException;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.util.Scanner;
  6.  
  7. import org.junit.Test;
  8. public class Money{
  9. public static void main(String[] args) {
  10.  
  11. }
  12. @Test
  13. public void fileout() throws IOException {
  14. FileOutputStream file=null;
  15. try {
  16. file=new FileOutputStream("Test/money");
  17. file.write('a');

String string="中国你好,世界你好!";
              file.write(string.getBytes());

  1. } catch (FileNotFoundException e) {
  2. // TODO 自动生成的 catch 块
  3. e.printStackTrace();
  4. }finally {
  5. try {
  6. if(file!=null)
  7. file.close();
  8. } catch (IOException e) {
  9. // TODO 自动生成的 catch 块
  10. e.printStackTrace();
  11. }
  12. }
  13.  
  14. }
  15. }

当没有当前需要输出的文件时,系统会在你写的当前路径下创建新的文件,刷新即可看到自动创建的那个文件。

输出文件中前N个最常出现的英文单词,并将结果输入到文本文件中:

  1. package hu;
  2. import java.io.BufferedReader;
  3. import java.io.FileReader;
  4. import java.io.IOException;
  5.  
  6. public final class Hu {
  7. private Hu(){}
  8. public static int countStringInFile(String filename , String word){
  9. int counter = 0;
  10. try{
  11. FileReader fr = new FileReader(filename);
  12. BufferedReader br = new BufferedReader(fr);
  13. String line = null;
  14. while((line = br.readLine()) != null){
  15. int index = -1;
  16. while(line.length() >= word.length() && (index = line.indexOf(word)) >= 0){
  17. counter++;
  18. line = line.substring(index + word.length());
  19. }
  20. }
  21. }catch(IOException e){
  22. e.printStackTrace();
  23. }
  24. return counter;
  25. }
  26. public static int countString2(String filename , String word){
  27. int counter = 0;
  28. try{
  29. FileReader fr = new FileReader(filename);
  30. BufferedReader br = new BufferedReader(fr);
  31. String line = null;
  32. int l = word.length();
  33. while((line = br.readLine()) != null){
  34. for(int i = 0 ; i <= line.length() - l; i++){
  35. if(line.substring(i, i + l).equals(word)){
  36. counter++;
  37. }
  38. }
  39. }
  40. }catch(IOException e){
  41. e.printStackTrace();
  42. }
  43. return counter;
  44. }
  45.  
  46. public static void main(String[] args) {
  47. String filename = "F:\\wenjian";
  48. String word = "zhuo";
  49. System.out.println(Hu.countStringInFile(filename, word));
  50. }
  51. }

IO流的学习以及统计次数最多的单词的更多相关文章

  1. java语言 找出文章中出现次数最多的单词

    package english; import java.io.File; import java.util.Scanner; import java.io.FileNotFoundException ...

  2. 关于JAVA IO流的学习

    初学Java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见 ...

  3. 2019/3/1 IO流的学习总结

    Java学习之IO流 学习Io流之前,我们先了解文件,以及在Java中对文件的操作.首先对文件进行操作,就必须用 File F = new File(“d:\\文件名”); 表示该文件或文件夹的地址寻 ...

  4. Java io流的学习

    近期几天细致学了Java的io流.本来是打算看视频通过视频来学习的.但是后来发现事实上视频看不怎么懂也感觉不是非常easy上手,所以就通过百度和api文档学习了Java的io流 io流能够有两个分类, ...

  5. IO流等学习笔记

    1.为什么日期的开始是从1970年0101开始记录,计算机的日期记录是现在的时间距1970年的时间,可正可负.? 2.引用类型默认都为null,基本数据类型为0,除基本数据类型外所有的都为引用数据类型 ...

  6. 。。。IO流的学习之一。。。

    文件写入流FileWriter的使用: import static org.junit.Assert.*; import java.io.File; import java.io.FileWriter ...

  7. 编写一个小程序,从标准输入读入一系列string对象,寻找连续重复出现的单词。程序应该找出满足一下条件的单词:该单词的后面紧接着再次出现自己本身。跟踪重复次数最多的单词及其重复次数,输出.

    // test13.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

  8. Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词

    #coding:utf-8 import os,re path = 'test' files = os.listdir(path) def count_word(words): dic = {} ma ...

  9. java的Io流学习

    Java中io流的学习(一)File:https://blog.csdn.net/qq_41061437/article/details/81672859 Java中io流的学习(二)FileInpu ...

随机推荐

  1. 循环指令 LOOP

    循环程序: 如果需要重复执行若干次同样任务.用循环执行 循环指令: LOOP <跳转标号> 用累加器的低字做循环计数器 每次执行LOOP 指令的时候,累加器的低字减去1 若减去后 非零 , ...

  2. hihocoder 1241:Best Route in a Grid

    #1241 : Best Route in a Grid 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个N行N列的非负整数方阵,从左上角(1,1)出发,只能向下 ...

  3. htmp to pdf

    C++ Library to Convert HTML to PDF html2pdf PrinceXML 收费 CutePDF Ghostscript PDFDoc VisPDF PDFDoc Sc ...

  4. SSM整合搭建过程中的一个怪异问题

    好久没有搭建框架了,昨天开始试图搭建一个SSM框架,各种配置文件搭建成功,服务器也启动正确,但是在运行过程中,发现总是不能获取JDBC,不能够创建连接池工厂,报错如下:网页报500错误码 SEVERE ...

  5. Linux gcc(ar命令)打包库到另一个库中的另外一种方法

    最近的项目中需要在Libcurl写一个wrapper,最好的办法是把我的wrapper和libcurl包在一起,做一个新的静态库 但是很遗憾,直接用以下命令产生的libmywrapper.a 是不能用 ...

  6. 五十七、SAP中关于信息框的总结

    一.事务代码SE91 二.里面有我们创建过的一个消息类Z_TIANPAN_201907_MSG 三.这个消息类中有2个内容 四.我们的代码如下 五.S001效果 六.E001和W001效果 七.I00 ...

  7. 067-PHP使用匿名函数

    <?php $func=function ($x,$y){ //匿名函数与变量绑定 return $x+$y; }; echo '5+6='.$func(5,6); //使用匿名函数 echo ...

  8. > 1> 2> &> /dev/null Linux重定向输出

    编译模拟器的 LINK 阶段产生了大量错误信息,定位不到第一行,所以将错误重定向到了一个文件: scons build/X86_VI_hammer_GPU/gem5.opt --default=X86 ...

  9. 雷火神山直播超两亿,Web播放器事件监听是怎么实现的?

    Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播.在视频业务大数据平台中,播放数据的统计分析非常重要,所以We ...

  10. SpringBoot学习(五)——Profile

    Profile是Spring对不同环境(例如开发人用开发环境,测试人员用测试环境)提供不同配置功能的支持,可以通过激活,指定参数等方式快速切换环境 1.多profile文件形式 格式:applicat ...