我有一個Java程序正在使用Java的nio文件觀察器觀看文件夾。當在該文件夾中創建了某些內容時,它將獲取該文件的名稱,並使用將內容設置爲字符串。然後將字符串傳遞給一個使用此String作爲打印報告參數的類。報表服務器返回錯誤,他說:通過的字符串不被視爲字符串
沒有協議: [email protected]?timezone=America/New_York & VGEN = 1377628109 & CMD = get_pg &頁面= 1名&觀衆= Java2的
它似乎不喜歡字符串的一部分,因爲Java將它視爲某種命令而不是字符串,改變了它所說的內容。我確信有一個簡單的解決方案,但我不確定如何使用它。該字符串看起來是這樣的:
的serverURL:端口/報告=回購:REPORTNAME &數據源=數據源& prompt0 = DATE(2014,1,2)
CODE:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.file.*;
import static java.nio.file.StandardWatchEventKinds.*;
public class watching {
public static void main(String[] args) {
try {
String dirToWatch = "\\\\DIRECTORY\\PATH\\HERE\\";
WatchService watcher = FileSystems.getDefault().newWatchService();
Path logDir = Paths.get(dirToWatch);
logDir.register(watcher, ENTRY_CREATE);
while (true) {
WatchKey key = watcher.take();
for (WatchEvent<?> event : key.pollEvents()) {
WatchEvent.Kind<?> kind = event.kind();
if (kind == ENTRY_CREATE) {
WatchEvent<Path> ev = (WatchEvent<Path>) event;
Path filename = ev.context();
String thisfile = filename.toString();
//System.out.printf("%s was created in log dir.", filename.getFileName());
FileInputStream fis = new FileInputStream(dirToWatch+thisfile);
InputStreamReader in = new InputStreamReader(fis, "UTF-8");
String inetargs = in.toString();
inetprint printer = new inetprint (inetargs);
}
}
key.reset();
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
發佈您的代碼。 'java.io.InputStreamReader @ dda25b'是Un-overriden Object#toString()方法的結果。 –