Чтение содержимого файла из выражения условной точки останова JAVA в Eclipse без создания переменных

Как вы читаете содержимое файла из выражения условной точки останова JAVA в Eclipse?

Условие моей точки останова истинно, когда значение моей строковой переменной содержит «заработок»:

myVariable != null && myVariable.contains("earnings")

Я хочу, чтобы условная точка останова заменяла содержимое строки, когда она истинна; однако я смог сделать это, только дождавшись разрыва JVM (в точке останова), а затем отобразив следующий блок (Ctrl + Shift + D). Блок считывает содержимое файла в myVariable.

String sCurrentLine, fileName = "modified-earnings.xml";

java.lang.StringBuffer sb = new java.lang.StringBuffer();
java.io.FileReader fr = new java.io.FileReader(fileName);

java.io.BufferedReader br = new java.io.BufferedReader(fr);
while ((sCurrentLine = br.readLine()) != null) {
    sb.append(sCurrentLine + System.getProperty("line.separator"));
}
fr.close();
// this is where my variable gets the new value from a file
myVariable = sb.toString();
br.close();

Как видите, необходимость оценивать строки каждый раз, когда я хочу заменить значение строки, немного утомительна, поэтому я хочу, чтобы отладчик делал это за меня, используя ту же условную природу моей точки останова. Обратите внимание на дополнительное (последнее) логическое выражение (myVariable = magicCode("modified-earnings.xml")) != null

myVariable != null && myVariable.contains("earnings") && (myVariable = magicCode("modified-earnings.xml")) != null

Чего мне не хватает, так это функции magicCode, которая не может кодировать, поскольку я не могу (повторяю, не могу) изменить код или добавить новые JARS в путь к классам. В идеале системный API сделает это:

myVariable = StreamToString.do(System.getResourceAsStream("modified-earnings.xml"))

person Gerardo Costilla    schedule 21.05.2013    source источник


Ответы (1)


Для Java 8
этот условный код точки останова eclipse проверяет содержимое hello в файле c:/temp/hello.txt.

"hello".equals(new String(java.nio.file.Files.readAllBytes(java.nio.file.Paths.get("c:/temp/hello.txt"))))
person Frank M.    schedule 23.05.2013