我知道它正在读取文件,因为我将txt文件的内容打印到控制台但每次尝试.equals时变量都不会变为true / false只是保持真实的任何想法?
public static void readWebPage() {
URLConnection connection;
try {
connection = new URL("https://dl.dropbox.com/u/40562795/List.txt").openConnection();
@SuppressWarnings("resource")
Scanner scanner = new Scanner(connection.getInputStream());
scanner.useDelimiter("\\z");
String text = scanner.next();
System.out.println(text);
if(text.equals("stop")){
stop = true;
System.out.println("Successfully stopped.");
}else{ if(text.equals("-"))
stop = false;
System.out.println("Successfully started.");
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
编辑:
现在它能够读取它,但我的变量没有更新为true / false。它保持在真实左右,这在控制台中说。
if(stop = false){
System.out.println("stop = false.");
}else
if(stop = true){
System.out.println("stop = true.");
}
我的变量如何制作:
public static boolean stop = false;
这就是我制作变量的方式,它应该= false但是停止也不要 - 改变它。我在我的java文件中搜索了可能触发它的东西,但找不到任何东西。
答案 0 :(得分:1)
远程文本文件中的-
字符后面有一个尾随空格。您可以使用空格分隔符而不是行终止符分隔符。取代
scanner.useDelimiter("\\z");
与
scanner.useDelimiter("\\s+");
以便text
符合您的.equals
支票。
修改强>
在编辑中,您在if
语句表达式中有一个作业:
if (stop = false) {
替换为
if (stop == false) {
或更好
if (!stop) {
总的来说,这个if
语句是不必要的,您只需编写
System.out.println("stop = " + stop);