用Java实现对英文版《飘》的文件读取与写入操作
从文件读入《飘》的英文版,并将结果输出到文件中
要求一:
实现对英文版《飘》的字母出现次数统计
package File; import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; public class File_Test {
public static void main(String[] args) {
int []arr=new int [100];//数组存入 FileInputStream fis=null;
FileOutputStream fos=null; try {
fis=new FileInputStream("D:\\WiththeWind.txt");//《飘》文件位置
} catch (FileNotFoundException e) {
e.printStackTrace();
}
int temp;
try {
while((temp=fis.read())!=-1) {
if(((char)temp>='A'&&(char)temp<='Z')||((char)temp>='a'&&(char)temp<='z'))
arr[temp-65]++;//存入数组
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
} for(int i=0;i<100;i++) {
if(arr[i]!=0)
System.out.println((char)(i+65)+":"+arr[i]);
} try {
fos=new FileOutputStream("1024.txt");//在当前目录下写入文件
} catch (FileNotFoundException e) {
e.printStackTrace();
} for(int i=0;i<100;i++) {
if(arr[i]!=0)
{
try {
fos.write((char)(i+65));//写入字母
} catch (IOException e) {
e.printStackTrace();
}
try {
fos.write(":".getBytes());//写入冒号:
} catch (IOException e) {
e.printStackTrace();
}
try {
fos.write(String.valueOf(arr[i]).getBytes());//写入数组的值,即字母的个数
} catch (IOException e) {
e.printStackTrace();
}
try {
fos.write("\n".getBytes());//换行
} catch (IOException e) {
e.printStackTrace();
}
try {
fos.flush();//刷新
} catch (IOException e) {
e.printStackTrace();
}
}
}
} }
要求二:
实现单词的统计。
 package File;
 import java.io.*;
 public class File_test_01 {
     public static void main(String[] args) {
         try {
             FileWriter fw=new FileWriter("d:\\result.txt");
             FileReader fr=new FileReader("d:\\WiththeWind.txt");
             StringBuffer buffer=new StringBuffer();
             int ch,count=0;//ch记录当前字符,count记录数组位置
             boolean flag;
             String temp;
             //两个数组记录时下标同步
             String [] arr=new String [200000];//记录单词
             int [] x=new int[200000];//记录个数
             //循环按照字符依次读入
             while((ch=fr.read())!=-1) {
 //                System.out.println((char)ch);//成功读入字符
                 //如果是字母,则存储当前单词
                 if(((char)ch>='a'&&(char)ch<='z')||((char)ch>='A'&&(char)ch<='Z')) {
                     if((char)ch>='A'&&(char)ch<='Z')
                         ch=ch+32;
                     buffer.append((char)ch);
 //                    System.out.println("buffer1="+buffer);
                 }
                 else
                 {
                     //如果buffer没有字母,即不是单词
                     if(buffer.length()>0)
                     {
                         flag=true;
                         for(int i=0;arr[i]!=null;i++)  //查重
                             if(arr[i].equals(buffer.toString())) {
                                 x[i]++;
                                 flag=false;
                                 break;
                             }
 //                        System.out.println("buffer2="+buffer);
                         if(flag) //如果不重复
                         {
                             arr[count++]=buffer.toString();
                             x[count]++;
 //                            System.out.println("arr="+arr[count-1]);
                         }
                         buffer.delete(0, buffer.length());//清空buffer
                     }
                 }
             }
             for(int i=0;arr[i]!=null;i++) {
                 temp=String.valueOf(x[i]);
                 fw.write(arr[i]+":"+temp+"\t");
                 if(i%5==0)
                     fw.write("\n");
             }
         }
         catch (Exception e) {
             System.out.println(e.toString());
         }
     }
 }
结果:

用Java实现对英文版《飘》的文件读取与写入操作的更多相关文章
- java===java基础学习(5)---文件读取,写入操作
		文件的写入读取有很多方法,今天学到的是Scanner和PrintWriter 文件读取 Scanner in = new Scanner(Paths.get("file.txt") ... 
- testbench的设计 文件读取和写入操作 源代码
		十大基本功之 testbench 1. 激励的产生 对于 testbench 而言,端口应当和被测试的 module 一一对应.端口分为 input,output 和 inout 类型产生激励信号的时 ... 
- 记-Golang日志文件读取及写入操作
		Golang语言的 os 包中OpenFile 函数,如下所示: func OpenFile(name string, flag int, perm FileMode) (*File, error) ... 
- Java底层代码实现单文件读取和写入(解决中文乱码问题)
		需求: 将"E:/data/车站一次/阿坝藏族羌族自治州.csv"文件中的内容读取,写入到"E:/data//车站一次.csv". 代码: public cla ... 
- Apache commons-io实现单文件读取和写入
		Apache commons-io提供了很多类,这里只介绍FileUtils类. FileUtils类提供了一些操作文件对象的实用方法,包括文件的读取.写入.复制和比较等. 比如逐句读取和写入一个文件 ... 
- python文件读取和写入案例
		python文件读取和写入案例 直接上代码吧 都是说明 百度上找了很多,最终得出思路 没有直接可以读取修改的扩展,只能先读取,然后复制一份,然后在复制出来的文件里面追加保存 然后删除读的那个,但是缺 ... 
- HDFS数据流-剖析文件读取及写入
		HDFS数据流-剖析文件读取及写入 文件读取 1. 客户端通过调用FileSystem对象的open方法来打开希望读取的文件,对于HDFS来说,这个对象是分布式文件系统的一个实例.2. Distrib ... 
- 使用java 程序创建格式为utf-8文件的方法(写入和读取json文件)
		使用java 程序创建格式为utf-8文件的方法: try{ File file=new File("C:/11.jsp"); ... 
- properties文件读取与写入
		将peoperties文件的读取和写入封装成了一个工具类: import java.io.BufferedInputStream; import java.io.FileInputStream; im ... 
随机推荐
- AcWing:131. 直方图中最大的矩形(贪心 + 单调栈)
			直方图是由在公共基线处对齐的一系列矩形组成的多边形. 矩形具有相等的宽度,但可以具有不同的高度. 例如,图例左侧显示了由高度为2,1,4,5,1,3,3的矩形组成的直方图,矩形的宽度都为1: 通常,直 ... 
- kubernetes集群搭建
			工作环境: 主机名 IP 系统 master 192.168.199.6 rhel7.4 node1 192.168.199.7 rhel7.4 node2 192.168.199.8 rhel7.4 ... 
- Eclipse改变成炫酷黑色主题
			有一个款Eclipse插件EclipseColorTheme,其官网地址是http://eclipsecolorthemes.org/,可以直接使用大量内置的样式主题模板,如果还不能满足你自己的个性化 ... 
- 实现自己的SpringMVC
			一.SpringMVC的工作原理 SpringMVC流程 1. 用户发送请求至前端控制器DispatcherServlet. 2. DispatcherServlet收到请求调用HandlerMa ... 
- mybatis oracle mysql 批量插入时的坑爹问题--需谨记
			mybatis oracle mysql 批量插入一.oracle的批量插入方式insert into db(id, zgbh, shbzh) select '1', '2', '3' from du ... 
- Linux上Python的安装升级
			1.下载 cd /usr/local/src/ wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz 2.安装,在/usr/loc ... 
- 尚学堂requireJs课程---3、私有和公有属性和方法
			尚学堂requireJs课程---3.私有和公有属性和方法 一.总结 一句话总结: 在 [模块] 的基础上,在return对象里面的方法和属性就是公有的(因为外部可以访问),不在的就是私有的 < ... 
- SQLSTATE[HY000] [2002] Connection refused
			//域名绑定到模块 '__domain__' => [ 'admin' => 'admin', 'post' => 'api', 'user' => 'index', 'www ... 
- linux系统创建windows启动盘
			平时工作中用到linux的操作命令较多,因此为了方便,就给电脑装了双系统,一般工作的时候,都选择进入linux系统.但是今天有件工作之外的事情需要解决下:创建一个windows启动盘.如果按照往常来说 ... 
- StringUtils字符串工具类左侧补齐(leftPad)、右侧补齐(rightPad)、左右两侧补齐(center)工具方法
			这里使用的是 org.apache.commons.lang.StringUtils;下面是StringUtils工具类中字符串左侧补齐的方法,示例如下: //左侧补齐 第一个参数:原始字符串,第二个 ... 
