在txt File Java中查找字符串(或行)

假设我有一个包含以下内容的txt文件: john dani zack 用户将输入一个字符串,例如“omar”我希望程序搜索该字符串“omar”的txt文件,如果它不存在,只需显示“不存在”。 我尝试了函数String.endsWith()或String.startsWith(),但当然显示“不存在”3次。 我3周前才开始使用java,所以我是一个新手…请耐心等待我。 谢谢。

抽象类: – 实时例子

最近在一次采访中我被问到一个非常笼统的问题“java中的抽象是什么”。我给出了定义,然后在摘要上引入了一些其他问题,如抽象方法和抽象方法与具体方法之间的区别等。最后,面试官要求给出一个实时的例子,当我应该使用或定义一个类作为抽象时。我感到困惑。我举了一些例子,但他不相信。 我用谷歌搜索,但没有找到真正的解决方案。 那么有人可以给我实时的例子,即当他在他/她的项目中将一个类定义为抽象时,为什么? 谢谢。

在将一些节点添加到底层模型后,如何刷新JTree?

首先,我要说我不使用DefaultTreeModel。 我实现了自己的TreeModel,所以我不能使用DefaultXXX。 问题是:通过我的模型定义的一些addStuff()方法,我将节点添加到底层数据结构。 然后我通过在addStuff()函数中调用treeNodesChanged()来通知侦听器(我知道有treeNodesInserted方法,但它是相同的。它只是用不同的方法通知侦听器)。 现在,其中一个监听器是我的主窗体中的静态类,这个监听器可以告诉JTree,它也包含在我的主窗体中,用于刷新自身。 如何告诉JTree从模型中“重新加载”其部分或全部节点? 更新:发现这个问题虽然不完全相同,但它给出了我想要的答案。 更新2:我的问题不是如何通知查看器(JTree),而是在模型通知后应该以什么方式重新加载jtree。 首先让我说,我知道刷新树以反映底层更改的唯一方法是调用updateUI(),或重用setModel()方法。 基本上,我的问题是: 假设刚刚通知TreeModelListener(通过TreeModelListener API)模型中发生了更改。 好的,现在呢? 我有这个问题,因为JTree没有实现TreeModelListener。 因此,在我的情况下,监听器是JTree的容器,或实现监听器的内部类,与Jtree位于同一容器中。 所以假设我是一个TreeModelListener实现,和我的兄弟JTree一起幸福地生活在一个JForm中。 突然我的方法treeNodesInserted(TreeModelEvent evt)被调用。 现在我该怎么做? 如果我从我内部调用Jtree.updateUI(),那么模型的侦听器List会抛出ConcurrentModificationexception。 我可以调用updateUI以外的其他东西吗? 我尝试了很多东西,但只有updateUI刷新了JTree。 所以我在听众之外做了。 从JForm,我只是调用模型的方法来改变不正常的结构,然后我调用updateUI。 没有使用TreeModelListener。 UPDATE3:我发现注册了隐式TreeModelListeners。 在我的模型的addTreeModelListener(TreeModelListener监听器)实现中,我放了一个debug system.out行: System.out.println(“listener added: ” + listener.getClass().getCanonicalName()); 当我执行jTree.setModel(model)时,我看到了这个调试输出: 监听器添加:javax.swing.JTree.TreeModelHandler 监听器添加:javax.swing.plaf.basic.BasicTreeUI.Handler 引发ConcurrentModificationException是因为对jtree.updateUI()的调用会重新注册侦听器(只有plaf,而不是两者),因此当我在侦听器通知循环中调用updateUI时会抛出它。 现在刷新树的唯一方法是在TreeModelListener之外执行。 有关更好解决方案的任何意见或想法吗? 我错过了什么吗?

Java线程转储:没有“等待锁定……”的BLOCKED线程

我在理解我从jstack获得的线程转储有困难,因为在Tomcat 6上运行的Spring MVC Web应用程序(java 1.6.0_22,Linux)。 我看到阻塞线程(导致其他线程等待)自己被阻塞,但是线程转储没有告诉我为什么或者他们正在等待哪个监视器。 例: “TP-Processor75” daemon prio=10 tid=0x00007f3e88448800 nid=0x56f5 waiting for monitor entry [0x00000000472bc000] java.lang.Thread.State: BLOCKED (on object monitor) at java.lang.Class.initAnnotationsIfNecessary(Class.java:3067) – locked (a java.lang.Class for org.catapultframework.resource.ResourceObject) at java.lang.Class.getAnnotation(Class.java:3029) … 即我错过了堆栈跟踪中的“等待锁定…”行。 显然线程锁定了一个Class对象,但是我不明白为什么线程本身被阻塞了。 线程转储不包含任何死锁提示。 如何识别锁定监视器? 谢谢,奥利弗

为Play编写自定义filter! 2.2用Java

我有一个简单的场景:自动为每个HTTP响应添加一个响应头; 我想用Java做到这一点。 查看src/play-filters-helpers/src/main/java/play/filters/* ,有一些可以作为注释应用的动作示例。 我想避免将@AddMyHeader添加到每个处理程序。 特别是在src/play-filters-helpers/src/main/scala/play/filters/*和GzipFilter查看Scalafilter ,我看到了一个明确的机制,但是我对Scala不太熟悉,无法推断Java。 那么:我从哪里开始?

正则表达式VS包含。 最棒的表演?

我想在java中比较不同模式的URI字符串,我想要尽可能快的代码。 我应该使用: if(uri.contains(“/br/fab”) || uri.contains(“/br/err”) || uri.contains(“/br/sts”) 或类似的东西: if(uri.matches(“.*/br/(fab|err|sts).*”)) 请注意,我可以使用更多uri,并且经常调用此方法。 我的选择之间最好的答案是什么?

netbeans 6.5在计算机上找不到JDK

打开netbeans时,我收到以下消息。 我安装了jdk,并在环境中设置bin目录。 接下来我可以做些什么来避免这个问题? 顺便说一句,我使用的是Windows 7 64位。

是否可以在JBoss AS 7中部署爆炸的war文件(解压缩的战争)

我在复制到以下部署文件夹时部署‘app.war’文件没有问题: “jboss-as-7.0.0.Final \ jboss-as-7.0.0.Final \ standalone \ deployments” ; JBoss7会正确部署它。 我想对爆炸文件夹‘app’ (即提取的app.war)做同样的事情。 Apache Tomcat在其部署目录中与爆炸文件夹一起正常工作,但我无法对JBoss执行相同的操作。 我确实在JBoss控制台中放置了部署扫描程序auto-deploy-explosion =’true’ ; 我在deployments目录中创建了‘app.war.dodeploy’文件以及解压缩的‘app’文件夹。 我无法在jboss服务器中部署和启动’app’。 我想知道是否有可能在JBoss7中部署爆炸的war文件(解压缩的战争)。 我想特别部署一个解压缩的文件夹,因为我正在使用’ Kwatee ‘部署软件。 Kwatee将爆炸(提取的战争)文件夹复制到其目标服务器部署文件夹。 如果有人知道如何让Kwatee按原样移动’war’文件,而不是移动提取的war文件夹,我将不胜感激。 如果有人可以为Kwatee推荐替代软件或回答我之前的相关问题,我将不胜感激

三层架构和例外

对于每个应用程序层(例如PresentationException , ServiceException , PersistenceException等)都有一个例外,这被认为是一种好习惯。 但是,如果我的服务层直接调用DAO方法(持久层方法)而不需要额外的操作,那该怎么办呢? 喜欢这个: public class MyService { private IPersonDAO dao = new PersonDAO(); public void deletePerson(int id) { dao.deletePerson(id); } } 我应该使用try-catch块包装此DAO方法调用并重新抛出可能的exception作为ServiceException吗? 每个DAO方法应该只抛出PersistenceException吗?

使用自定义typeadapter,json中的jsonwriter添加对象

gson是一个很棒的图书馆 – 它运作良好。 有时我有自定义要求,可以制作和注册TypeAdapters和TypeAdaptorFactories – 这也很有效。 然而令我感到困惑的是,如何委托回json序列化…大多数时候我需要这个用于集合,但为了说明这一点 – 假设我有一个对类,gson显然会愉快地序列化,但由于某种原因我需要自己的自定义序列化程序。 好吧……如果我的配对是 public class Pair { public final Object First; public final Object Second; public Pair( Object first, Object second) {this.first = first; this.second = second}; } 如果我为此编写了一个类型适配器 – 您希望 write函数看起来像: public void write( JsonWriter out, Pair pair ) { out.beginObject(); out.name( “first”); out.value( pair.first ); // […]