我有一个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()方法的结果。 –