传递的String未被视为String

时间:2013-08-27 18:41:40

标签: java string url

我有一个Java程序正在使用Java的nio文件观察器观看文件夹。当在该文件夹中创建某些内容时,它将获取该文件的名称,并使用FileInputStream InputStreamReader将内容设置为String。然后将String传递给使用此String作为打印报表的参数的类。报表服务器返回错误,说:

  

没有协议:   ?java.io.InputStreamReader@dda25b时区=美国/纽约&安培; VGEN = 1377628109&安培; CMD = get_pg&安培;页= 1&安培;观察者= Java2的

似乎它不喜欢String的一部分,因为Java将它视为某种命令而不是字符串,改变它所说的内容。我确信有一个简单的解决方案,但我不确定如何表达它。字符串如下所示:

  ?

的serverURL:端口/报告=回购:REPORTNAME&安培;数据源=数据源&安培; prompt0 =日期(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();
    }
}

}

1 个答案:

答案 0 :(得分:3)

“inetargs = in.toString()”这一行是个问题。看起来你认为将文件的内容读入一个字符串,但它不会做任何类似的事情!您必须使用其read()方法来读取文件内容。