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 的子类都是装饰流

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

package reserve;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException; import org.junit.Test; public class Main{
public static void main(String[] args) { }
@Test
public void test() {
FileInputStream input=null;
try {
input=new FileInputStream("Test/wenjian");
int a=-1;
while(true)
{
a=input.read();
if(a==-1)
break;
System.out.print((char)a);
}
System.out.println((char)a);
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
finally {
if(input!=null)
try {
input.close();//流的关闭是释放资源的操作
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
} }

测试截图:

package  money;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner; import org.junit.Test;
public class Money{
public static void main(String[] args) { }
@Test
public void fileout() throws IOException {
FileOutputStream file=null;
try {
file=new FileOutputStream("Test/money");
file.write('a');

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

        } catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}finally {
try {
if(file!=null)
file.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
} }
}

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

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

package hu;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException; public final class Hu {
private Hu(){}
public static int countStringInFile(String filename , String word){
int counter = 0;
try{
FileReader fr = new FileReader(filename);
BufferedReader br = new BufferedReader(fr);
String line = null;
while((line = br.readLine()) != null){
int index = -1;
while(line.length() >= word.length() && (index = line.indexOf(word)) >= 0){
counter++;
line = line.substring(index + word.length());
}
}
}catch(IOException e){
e.printStackTrace();
}
return counter;
}
public static int countString2(String filename , String word){
int counter = 0;
try{
FileReader fr = new FileReader(filename);
BufferedReader br = new BufferedReader(fr);
String line = null;
int l = word.length();
while((line = br.readLine()) != null){
for(int i = 0 ; i <= line.length() - l; i++){
if(line.substring(i, i + l).equals(word)){
counter++;
}
}
}
}catch(IOException e){
e.printStackTrace();
}
return counter;
} public static void main(String[] args) {
String filename = "F:\\wenjian";
String word = "zhuo";
System.out.println(Hu.countStringInFile(filename, word));
}
}

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. 《Java并发编程的艺术》并发编程的基础(四)

    一.线程简介 1.线程的概念 系统运行的最小单元 2.为何使用多线程 更好地利用系统资源(处理器多核心),提高响应速度. 3.线程的状态 NEW(创建状态) RUNABLE(运行状态,系统调度,争抢时 ...

  2. js generator的两个实际应用

    generator作为一个用来操作异步的状态机, 遇到yield停止, 通过调用next()来继续操作.  今天就用generator来举例两个实际开发中的应用. 1,抽奖 function draw ...

  3. Python基础笔记:使用dict和set

    dict 就和 C语言中的 map 的作用一样.查找非常快,以空间换时间! dict的使用: >>> d={'Mike':66,'Bob':77,'John':88} #定义一个di ...

  4. Python实战案例:这是你见过的最详细的JS加密登录某博

    0x00 抓包分析 简单的搜索之后发现,很多参数都是登陆上面这个请求返回的值,这个请求在输入完账号光标到达密码框时就会生成! 0x01 加密逻辑分析 搜索su=可以很快找到加密的位置,上图看到e.su ...

  5. ES6 之 Reflect 的方法总结

    1. 概述 将 Object 对象的一些明显属于语言内部的方法(比如 Object.defineProperty ),放到 Reflect 对象上. 修改某些 Object 方法的返回结果,让其变得更 ...

  6. Node.js NPM 教程

    NPM是Node.js的包(或模块)管理器,是Node.js应用程序开发的核心. www.npmjs.com上有海量的Node.js包,供免费下载使用. 当安装Node.js时,NPM程序会被同时安装 ...

  7. Spring开发环境搭建(Eclipse)

    开发环境搭建,主要包含2部分: Java安装 Eclipse安装 为易于学习,我们只安装这2个部分,对于一般开发学习也足够了.如果你有其他要安装的,酌情添加. Java安装 我们使用Java8: 下载 ...

  8. spring源码 继承AttributeAccessor的BeanDefinition接口

    /** * A BeanDefinition describes a bean instance, which has property values, * constructor argument ...

  9. java基础源码 (1)--String类

    这个是String类上面的注释,我用谷歌翻译翻译的,虽然有点语法上的问题,但是大概都可以翻译出来 /** * The {@code String} class represents character ...

  10. oracle11g数据库的安装

     先在 Oracle官网上下载11g  oracle Database 11g 第 2 版 (11.2.0.1.0) 标准版.标准版 1 以及企业版,适用于 Microsoft Windows (x6 ...