TextFile 作为自写的方法,继承自List<String>。像统计文本中出现的哪些单词,不重复等等,适合用Set集合完成统计。

 class TextFile extends ArrayList<String>{
public static String read(String filename){
StringBuilder sb=new StringBuilder();
try{
BufferedReader in=new BufferedReader(new FileReader(
new File(filename).getAbsoluteFile()));
try{
String s;
while((s=in.readLine())!=null){
sb.append(s);
sb.append("\n");
}
}finally{
in.close();
}
}catch(IOException e){
throw new RuntimeException(e);
}
return sb.toString();
}
public TextFile(String filename,String splitter){
super(Arrays.asList(read(filename).split(splitter)));
if(get(0).equals("")) remove(0);
}
public TextFile(String filename){
this(filename,"\n");
}
public void write(String filename){
try{
PrintWriter out=new PrintWriter(new File
(filename).getAbsoluteFile());
try{
for(String item : this) out.println(item);
}finally{
out.close();
}
}catch(IOException e){
throw new RuntimeException(e);
} }
public static void write(String filename,String text){
// 其中filename指明要写入的文件名,text指明写入的字符串内容
try{
FileWriter fwriter=new FileWriter(new File
(filename).getAbsoluteFile());
BufferedWriter out=new BufferedWriter(fwriter);
String []tx=text.split("\n");
try{
for(int i=0;i<tx.length;i++)
{
out.write(tx[i]);
out.newLine();
}
}finally{
out.flush();
out.close();
}
}catch(IOException e){
throw new RuntimeException(e); } }
}
    public static void main(String[] args) {
Set<String> words = new TreeSet<String>(
new TextFile("StatckTest.java","\\W+"));
System.out.print(words);
System.out.println(words.size()); Set<String> words2 = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
words2.addAll(words);
System.out.print(words2);
System.err.println(words2.size()); //这里有什么不同的? }

TextFile 类的创写的更多相关文章

  1. 基类的析构函数写成virtual虚析构函数

    虚函数作用:动态绑定,实现多态效果. 场景问题: 派生类中有资源需要回收,而在编程中采用多态,由基类的指针指向派生类,则在释放的时候,如果基类的析构函数不是virtual,则派生类的析构函数得不到释放 ...

  2. C++模板类代码只能写在头文件?

      这个问题,实际上我几年前就遇到了.最近写个模板类玩的时候,再次遇到.   当我非常仔细的将定义和实现分开,在头文件中保留了最少的依赖后,一切就绪.cpp单独编过.但是当使用的时候,就会报告所有的函 ...

  3. 需要序列化的类中没有写serialVersionUID的解决办法

    由于没赋值serialVersionUID 只是警告,不是错误,造成先前没留意设定serialVersionUID,网络两端上线运行一段时间也感觉正常.如果再增减修改field,没赋值好serialV ...

  4. Java——IO类,字节流写数据

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  5. QT in VS 多语言实现(中英文切换,每个步骤都有截图,只有UTF8才能让Qt语言家正确读取。先qApp->removeTranslator,然后installTranslator,每个类都要写上槽函数RetranslateUI)

    最近项目需要软件具有中英文双语切换功能,而QT又自带此功能,现将实现方式记录下来. 说到中英文切换,少不了要了解QT的内部编码方式.在此就不详述QT编码方式了,具体可参考 彻底弄懂Qt的编码.只需要记 ...

  6. 20162326 齐力锋 2017-2018学期 Bag类的补写博客

    要求: 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息 参见Bag的UML图,用Java继承BagInterface实现泛型类Bag,并对方法进行单元测试(JUnit), ...

  7. [转]C# 将类的内容写成JSON格式的字符串

    将类的内容写入到JSON格式的字符串中 本例中建立了Person类,赋值后将类中内容写入到字符串中 运行本代码需要添加引用动态库Newtonsoft.Json 程序代码: using System; ...

  8. 收集C#常用类:自己写的一个DBHelper类

    随着学的东西越来越多,一点点的完善吧! using System; using System.Collections.Generic; using System.Linq; using System. ...

  9. Android 线程池系列教程(2)Thread,Runnable是基类及如何写Run方法

    Specifying the Code to Run on a Thread 上一课   下一课 1.This lesson teaches you to Define a Class that Im ...

随机推荐

  1. [家里蹲大学数学杂志]第013期2010年西安偏微分方程暑期班试题---NSE,非线性椭圆,平均曲率流,非线性守恒律,拟微分算子

    Navier-Stokes equations 1 Let $\omega$ be a domain in $\bbR^3$, complement of a compact set $\mathca ...

  2. OSX 10.11 cocoapods安装命令: sudo gem install -n /usr/local/bin cocoapods

    10.11 cocoapods安装命令: sudo gem install -n /usr/local/bin cocoapods

  3. PyCharm、IntelliJ IDEA等jetbrains软件授权服务器

    Paste_Image.png 图上链接:http://idea.qinxi1992.cnhttp://blog.lanyus.com/archives/174.htmlhttp://www.idea ...

  4. angularjs如何在视图渲染结束之后,或者render之后执行指令中的link方法呢?

    angularjs如何在视图渲染结束之后,或者render之后执行指令中的link方法 关键字: $timeout app.directive("myDirective",func ...

  5. V$RMAN_BACKUP_JOB_DETAILS

    V$RMAN_BACKUP_JOB_DETAILS展示了rman备份的相关细节.比如,rman备份持续时间.rman备份的执行次数.每一次rman备份工作的状态(failed or completed ...

  6. linker command failed with exit code 1 (use -vto see invocation)

    报这样的错误可能是同一个.m文件同时存在,要先把你新添加的.m文件彻底删除 Move to Trash 点击这个删除.然后clear一下,再在重新添加你所需要的文件即可解决.这次添加不要推进来,需要在 ...

  7. Jquery异步上传图片

    网页中这样: <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head id=& ...

  8. Hibernate day03笔记

      Hibernate的关联关系映射:(多对多) 多对多的配置: 步骤一创建实体和映射: Student: public class Student {     private Integer sid ...

  9. 解决OneNote的无法同步的问题

    微软的OneNote一直是我比较喜欢的笔记软件,一些复杂的笔记用它来存储比Evernote要强大很多,然而这几天发现一直无法同步,登陆https://onedrive.live.com/看了一下,发现 ...

  10. 云主机不能外网ssh连接,只能内网ssh连接的问题处理

    某台服务器外网无法ssh,内网可以ssh连接,ping值延时比较大 安装iftop查看流量 yum install -y iftop iftop界面含义如下 第一行:带宽显示 中间部分:外部连接列表, ...