IO流的学习以及统计次数最多的单词
IO流:
处理数据类型:字节流(InputStream OutputStream)和字节流(Reader Writer)
数据流向不同:输入流和输出流(FileInputStream FileOutputStream)
输入流:
- InputStream 是所有的输入字节流的父类,它是一个抽象类。
- ByteArrayInputStream、StringBufferInputStream、FileInputStream 是三种基本的介质流,它们分别从Byte 数组、StringBuffer、和本地文件中读取数据。
- ObjectInputStream 和所有FilterInputStream 的子类都是装饰流(装饰器模式的主角)。
输出流:
- OutputStream 是所有的输出字节流的父类,它是一个抽象类。
- ByteArrayOutputStream、FileOutputStream 是两种基本的介质流,它们分别向Byte 数组、和本地文件中写入数据。
- 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流的学习以及统计次数最多的单词的更多相关文章
- java语言 找出文章中出现次数最多的单词
package english; import java.io.File; import java.util.Scanner; import java.io.FileNotFoundException ...
- 关于JAVA IO流的学习
初学Java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见 ...
- 2019/3/1 IO流的学习总结
Java学习之IO流 学习Io流之前,我们先了解文件,以及在Java中对文件的操作.首先对文件进行操作,就必须用 File F = new File(“d:\\文件名”); 表示该文件或文件夹的地址寻 ...
- Java io流的学习
近期几天细致学了Java的io流.本来是打算看视频通过视频来学习的.但是后来发现事实上视频看不怎么懂也感觉不是非常easy上手,所以就通过百度和api文档学习了Java的io流 io流能够有两个分类, ...
- IO流等学习笔记
1.为什么日期的开始是从1970年0101开始记录,计算机的日期记录是现在的时间距1970年的时间,可正可负.? 2.引用类型默认都为null,基本数据类型为0,除基本数据类型外所有的都为引用数据类型 ...
- 。。。IO流的学习之一。。。
文件写入流FileWriter的使用: import static org.junit.Assert.*; import java.io.File; import java.io.FileWriter ...
- 编写一个小程序,从标准输入读入一系列string对象,寻找连续重复出现的单词。程序应该找出满足一下条件的单词:该单词的后面紧接着再次出现自己本身。跟踪重复次数最多的单词及其重复次数,输出.
// test13.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...
- Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词
#coding:utf-8 import os,re path = 'test' files = os.listdir(path) def count_word(words): dic = {} ma ...
- java的Io流学习
Java中io流的学习(一)File:https://blog.csdn.net/qq_41061437/article/details/81672859 Java中io流的学习(二)FileInpu ...
随机推荐
- 循环指令 LOOP
循环程序: 如果需要重复执行若干次同样任务.用循环执行 循环指令: LOOP <跳转标号> 用累加器的低字做循环计数器 每次执行LOOP 指令的时候,累加器的低字减去1 若减去后 非零 , ...
- hihocoder 1241:Best Route in a Grid
#1241 : Best Route in a Grid 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个N行N列的非负整数方阵,从左上角(1,1)出发,只能向下 ...
- htmp to pdf
C++ Library to Convert HTML to PDF html2pdf PrinceXML 收费 CutePDF Ghostscript PDFDoc VisPDF PDFDoc Sc ...
- SSM整合搭建过程中的一个怪异问题
好久没有搭建框架了,昨天开始试图搭建一个SSM框架,各种配置文件搭建成功,服务器也启动正确,但是在运行过程中,发现总是不能获取JDBC,不能够创建连接池工厂,报错如下:网页报500错误码 SEVERE ...
- Linux gcc(ar命令)打包库到另一个库中的另外一种方法
最近的项目中需要在Libcurl写一个wrapper,最好的办法是把我的wrapper和libcurl包在一起,做一个新的静态库 但是很遗憾,直接用以下命令产生的libmywrapper.a 是不能用 ...
- 五十七、SAP中关于信息框的总结
一.事务代码SE91 二.里面有我们创建过的一个消息类Z_TIANPAN_201907_MSG 三.这个消息类中有2个内容 四.我们的代码如下 五.S001效果 六.E001和W001效果 七.I00 ...
- 067-PHP使用匿名函数
<?php $func=function ($x,$y){ //匿名函数与变量绑定 return $x+$y; }; echo '5+6='.$func(5,6); //使用匿名函数 echo ...
- > 1> 2> &> /dev/null Linux重定向输出
编译模拟器的 LINK 阶段产生了大量错误信息,定位不到第一行,所以将错误重定向到了一个文件: scons build/X86_VI_hammer_GPU/gem5.opt --default=X86 ...
- 雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播.在视频业务大数据平台中,播放数据的统计分析非常重要,所以We ...
- SpringBoot学习(五)——Profile
Profile是Spring对不同环境(例如开发人用开发环境,测试人员用测试环境)提供不同配置功能的支持,可以通过激活,指定参数等方式快速切换环境 1.多profile文件形式 格式:applicat ...