我需要将控制台输出导出到 Java 中的 2 个不同文件。在第一个文件中,我能够获取数据,第二个文件是空的
I need to export console output to 2 different files in Java. In first file I'm able to get data and the second file is empty
我需要 10 个人的详细信息,每个人的详细信息数量都不同。我需要所有这些,但数据在 13 行中。所以我需要所有这 13 行并像段落一样打印数据。我需要将这些数据导出到文件中,以便我可以将它们用于不同的目的。
driver.findElement(By.id("searchActivitySubmitButton")).click();
Map<String, String> map = new LinkedHashMap<>();
PrintStream prevConsole = System.out;
PrintStream myconsole = new PrintStream(new File("C:\FileName15.txt")); // exporting data in first file
System.setOut(myconsole);
for (int i = 1; i <= 10; i++) {
driver.findElement(By.xpath("(//a[contains(@id,'requestAchFileUploadDetails')])[" + i + "]")).click(); // checks the data of the first 10 people whom data i need
driver.findElement(By.xpath("//a[text()='See transactions']")).click();
Thread.sleep(3700);
List<WebElement> listRows = driver.findElements(
By.xpath("//table[@id='transactionActivityTable']//tr[contains(@id,'transaction_')]")); // for every row there are multiple columns which all data need to extracted.
for (int j = 1; j <= listRows.size(); j++) {
driver.findElement(By.xpath(
"(//tr[contains(@id,'transaction_')]//i[contains(@id,'icon-activitySeeDetails')])[" + j + "]"))
.click();
for (int k = 1; k <= 13; k++) {
String keys = driver.findElement(By.xpath("(//dt[contains(@id,'transactionDetailDataSet')]/span/span)[" + k + "]")).getText(); // inside every person there are 13 rows.
String value = driver
.findElement(By.xpath("//dl[@class='dataset row stack center']//dd[" + k + "]")).getText();
map.put(keys + " ; ", value);
Thread.sleep(1000);
}
for (Map.Entry<String, String> m : map.entrySet()) {
System.out.println(m.getKey() + " " + m.getValue());
}
System.out.println("\n");
}
Thread.sleep(1000);
driver.navigate().back();
Thread.sleep(3000);
driver.navigate().back();
Thread.sleep(5000);
}
System.setOut(prevConsole);
myconsole.close();
PrintStream mycons = new PrintStream(new File("C:\chase\sftp\ach_transactions_summary\Duplicate.txt")); // trying exporting data in second file
System.setOut(mycons);
// 数据仅在第一个文件中导出,第二个文件为空。
没有输出到第二个文件,因为在 System.setOut(mycons);
将 System.setOut
定义到第二个文件后,您没有向 System.out
发送任何内容
我需要 10 个人的详细信息,每个人的详细信息数量都不同。我需要所有这些,但数据在 13 行中。所以我需要所有这 13 行并像段落一样打印数据。我需要将这些数据导出到文件中,以便我可以将它们用于不同的目的。
driver.findElement(By.id("searchActivitySubmitButton")).click();
Map<String, String> map = new LinkedHashMap<>();
PrintStream prevConsole = System.out;
PrintStream myconsole = new PrintStream(new File("C:\FileName15.txt")); // exporting data in first file
System.setOut(myconsole);
for (int i = 1; i <= 10; i++) {
driver.findElement(By.xpath("(//a[contains(@id,'requestAchFileUploadDetails')])[" + i + "]")).click(); // checks the data of the first 10 people whom data i need
driver.findElement(By.xpath("//a[text()='See transactions']")).click();
Thread.sleep(3700);
List<WebElement> listRows = driver.findElements(
By.xpath("//table[@id='transactionActivityTable']//tr[contains(@id,'transaction_')]")); // for every row there are multiple columns which all data need to extracted.
for (int j = 1; j <= listRows.size(); j++) {
driver.findElement(By.xpath(
"(//tr[contains(@id,'transaction_')]//i[contains(@id,'icon-activitySeeDetails')])[" + j + "]"))
.click();
for (int k = 1; k <= 13; k++) {
String keys = driver.findElement(By.xpath("(//dt[contains(@id,'transactionDetailDataSet')]/span/span)[" + k + "]")).getText(); // inside every person there are 13 rows.
String value = driver
.findElement(By.xpath("//dl[@class='dataset row stack center']//dd[" + k + "]")).getText();
map.put(keys + " ; ", value);
Thread.sleep(1000);
}
for (Map.Entry<String, String> m : map.entrySet()) {
System.out.println(m.getKey() + " " + m.getValue());
}
System.out.println("\n");
}
Thread.sleep(1000);
driver.navigate().back();
Thread.sleep(3000);
driver.navigate().back();
Thread.sleep(5000);
}
System.setOut(prevConsole);
myconsole.close();
PrintStream mycons = new PrintStream(new File("C:\chase\sftp\ach_transactions_summary\Duplicate.txt")); // trying exporting data in second file
System.setOut(mycons);
// 数据仅在第一个文件中导出,第二个文件为空。
没有输出到第二个文件,因为在 System.setOut(mycons);
System.setOut
定义到第二个文件后,您没有向 System.out
发送任何内容