如何使用java替换文件中特定行之后的字符串

我有类似的情况,如果找不到相似的字符串,我需要在批处理文件中更改一行。 假设我在批处理中有类似下面的代码(我知道它不是正确的代码,因为它只是一个虚拟的) public static void main(String[] args) { if (user == ‘1234’) { ENV DEV set DB myDBDEV set Excel myExecelDEV set API MyAPIURLDEV } elseif (user == ‘5678’) { ENV UAT set DB myDBUAT set Excel myExecelUAT set API MyAPIURLUAT } } } 现在我希望java读取上面的文件,找到ENV作为DEV并更改值如myDBDEV,myExecelDEV,MyAPIURLDEV等。 我可以使用下面的代码找到行号 FileInputStream fis = new FileInputStream(“C:\\Users\\owner\\Desktop\\batch\\MYbatch-env.csh”); InputStreamReader input = new […]

处理2d数组或文件中的行范围

我对编程很新。 我正在自学,我正在使用的书中的例子太容易了,所以我想努力做点什么。 彩票是我的爱好之一,我认为我选择的问题会让我更容易学习Java。 这个程序计算基诺中的频率(每个数字从1 t0 70出现在我的txt文件中的次数),这是一种彩票(在基诺,抽奖由70个中的20个数字组成,而不是49个中的广泛中的6个) 。 我想计算不是整个txt文件的频率,而只是为了它的一部分,例如,如果文件有x行,我只想要x-5和x-10之间的线,就像这样。我不要不知道我文件中的行数,也许是数千行,但它总是有20列。 该程序适用于整个文件,但是当我尝试在其中的一部分上工作时遇到了麻烦。 我认为我应该将文件读入2d数组然后我可以处理我想要的行。 我很难将每一行转换成矩阵。 我已经阅读了有关将文件读入2d数组的所有post,但无法使其正常工作。 以下是我超过一周的许多尝试之一 public static void main(String args[]) { int[][] matricea = new int [30][40]; int x=0, y=0; try { BufferedReader reader = new BufferedReader( new FileReader(“C:\\keno.txt”) ); int[] numbers = new int[72]; //each keno draw has 70 numbers for (int i = 0; i […]

从日历对象显示“MM / DD / YYYY”

我有一个日历对象,需要将其转换为格式为“MM / DD / YYYY”的字符串。 Calendar firstFollowUp = Calendar.getInstance(); firstFollowUp.setTime(new Date()); 有一个简单的方法吗? 谢谢!

从另一个类调用TextToSpeech

我试图在另一个类中调用TextToSpeech。 以下是我的课程现在的样子: //MainActivity.java public class MainActivity extends AppCompatActivity implements View.OnClickListener { private SpeechRecognizer sr; sr.setRecognitionListener(new Listener()); } //Listener.java public class Listener implements RecognitionListener() { public void onResults(Bundle MainActivity theMainActivity = new MainActivity(); //the following line always breaks the code: tts = new TextToSpeech(theMainActivity, new TextToSpeech.OnInitListener() {/*…*/}); } } 对于上下文,其上下文中的文件位于GitHub上 。 GitHub上的版本是MainActivity.java中所有内容的工作版本,但我试图将Listener移动到它自己的类Listener.java 。 收到的错误是java.lang.NullPointerException: Attempt to […]

OpenCV getPerspectiveTransform和warpPerspective Java

我目前有一个ArrayList ,它存储图像的轮廓,并检索出最大的轮廓,这是我的warpPerspective的目标。 List contours = new ArrayList(); Imgproc.findContours(matOut, contours, new Mat(), Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE); sort(contours); MatOfPoint2f m2f = MatOfPoint2f(contours.get(0).toArray()); double arc = Imgproc.arcLength(m2f, true); MatOfPoint2f approx = new MatOfPoint2f(); Imgproc.approxPolyDP(m2f, approx, arc*0.02, true); 我在如何使用getPerspectiveTransform然后应用warpPerspective来更改图像以使其适合450×450图像时遇到问题。 我在python中找到了一个相当不错的例子,但是我对它不是很熟悉有人可以解释一下我将如何在java中进行纠正? def rectify(h): ”’ this function put vertices of square we got, in clockwise order ”’ h = h.reshape((4,2)) hnew = np.zeros((4,2),dtype […]

Selenium – 随机“IE驱动程序的命令行服务器已经停止工作”几个小时后

我公司的电子商务网站有几百个selenium测试。 特别是,其中大约一半是结账测试,差异很小(签证的单身人士,美国运通的多人团队等)。 我提到这一点是因为所有这些测试都使用几乎完全相同的代码,只是略有不同。 这些测试是从Jenkins开始使用Selenium Grid作为集线器并部署到同时运行Chrome和IE测试的Windows Server 2012 VM。 开始我的测试后,几个小时后我会得到一个浏览器弹出窗口,说Command line server for the IE Driver has stopped working还有一个Close the program的按钮。 这会导致测试执行挂起。 我曾尝试升级到VM上最新版本的网格,以及最新版本的IE驱动程序服务器。 我还写了一个小的rest服务器,在每次测试开始时运行Runtime.getRuntime().exec(“taskkill /F /IM IEDriverServer.exe”) (我以为可能一次打开太多窗口导致错误,但即使有这个修复它也没有帮助)。 我还尝试将TabProcGrowth添加到HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main到注册表,但这只是导致在每个测试开始时打开多个窗口,这进一步打破了局面。 另外,我已经实现了一个重试分析器,它将重试失败的测试。 手动单击Close the program ,测试将重新启动,几乎总是通过。 考虑到这一点,以及结账测试的性质,我认为问题不是代码问题。 我已经试了几天才能解决这个问题。 任何帮助将不胜感激!

Maven / Surefire没有找到unit testing

我尝试用maven创建一个测试项目,unit testing工作正常。 但是,当尝试为j2ee项目执行相同操作时,无法通过surefire找到unit testing。 测试位于正确的目录(src / test / java)中,并且正在编译它们。 junit测试位于src / test / java / unit / TestAddition.java pom.xml中的surefire插件配置不包含/排除任何文件。 org.apache.maven.plugins maven-surefire-plugin 2.8 和junit,testng junit junit 4.8.2 test org.testng testng 6.0.1 test 这是“ mvn clean test ”的输出 [DEBUG] (s) reportFormat = brief [DEBUG] (s) reportsDirectory = c:\workspace\JAdaptivLatest\target\surefire-reports [DEBUG] (s) runOrder = filesystem [DEBUG] (s) session = […]

unit testing使用资源包的静态方法

我已经阅读了很多关于使用Powermock和Mockito的文章,并尝试了很多不同的方法,但我仍然无法找到unit testing以下静态方法的方法。 public static Map getEntries() { Map myEntriesMap = new TreeMap(); ResourceBundle myEntries = ResourceBundle.getBundle(ENTRIES_BUNDLE); Enumeration enumList = myEntries.getKeys(); String key = null; String value = null; while (enumList.hasMoreElements()) { key = enumList.nextElement().toString(); value = myEntries.getString(key); myEntriesMap.put(key, value); } return myEntriesMap; } 代码是包含大约30个这样的静态方法的(遗留)类的一部分,并且重构实际上不是一个选项。 类似地,在一些其他静态方法中,正在检索DB连接。 例如:如何模拟资源包ENTRIES_BUNDLE并对此方法进行unit testing? 我正在寻找一种可以普遍适用于所有静态方法的模式。

为什么不将所有.properties文件转换为UTF-8?

我在一个java项目上工作,其中标签被外部化并翻译成.properties文件。 使用ISO-8859-1编码读取java中的资源,因此.properties文件也以ISO-8859-1编码存储。 当前文件搞砸了,有时使用转义\u00E4 ,有时使用实际的字母öäü 。 我也有俄语翻译,看起来像这样: code.adr=\u0430\u0434\u0440\u0435\u0441 这可以使用UTF-8以明文forms存储。 现在的问题是,为什么不使用UTF-8? 为什么Java默认使用ISO-8859-1而不是UTF-8,向后兼容性? 有没有已知的缺点,将所有.properties文件转换为UTF-8?

带有selectitem的richface树(复选框)

我试图将复选框放在树节点中。 我的代码如下。 我使用了richfaces – SC。 在JSP页面中: 在BackingBean中: private TreeNode rootNode; public TreeNode getRootNode() { rootNode = new TreeNodeImpl(); for (int i = 0; i < 10; i++) { TreeNodeImpl treeNodeImpl = new TreeNodeImpl(); treeNodeImpl.setData(new SelectItem(i, “Hello : “+i)); rootNode.addChild(new Integer(i), treeNodeImpl); } return rootNode; } 它在屏幕上显示节点,但如下所示…… 我如何获得实际的复选框? UPDATE 我尝试了所建议的内容。 但这不是我想要的。 它肯定会返回一个字符串,我可以在树中看到我的SelectItem标签。 但我想要的就是看例子 。 这是一个primefaces树复选框示例。 我想要一个类似的使用richfaces或myfaces。