由于doOutput,无法编写URLConnection

Alb*_*ola 8 java

我在这里问了一个问题,我已经解决了我的问题,感谢用户.这是我目前正在使用的代码.

void UploadToDatabase() throws MalformedURLException, IOException {
          URL website = new URL("http://mk7vrlist.altervista.org/databases/record_file.txt");
          WritableByteChannel rbc = Channels.newChannel(website.openConnection().getOutputStream());

          FileOutputStream fos;
          fos = new FileOutputStream("record_file.txt");
          fos.getChannel().transferTo(0, Long.MAX_VALUE, rbc);
          fos.close();
     }
Run Code Online (Sandbox Code Playgroud)

我的目标是record_file.txt在特定的Web链接上传文件,如上所示.但是,当我尝试运行此代码时,NetBeans给了我这个错误:

java.net.ProtocolException: cannot write to a URLConnection if doOutput=false - call setDoOutput(true)
Run Code Online (Sandbox Code Playgroud)

我读了一些关于这个的东西,我在声明该rbc变量之后添加了以下代码.

 URLConnection urlc = website.openConnection();
 urlc.setDoOutput(true);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我总是有同样的错误.你可以帮帮我吗?

tbo*_*odt 19

问题在于这条线:

WritableByteChannel rbc = Channels.newChannel(website.openConnection().getOutputStream());
Run Code Online (Sandbox Code Playgroud)

您将需要设置doOutputtrue这个工作.这是如何做:

URLConnection urlc = website.openConnection();
urlc.setDoOutput(true);
WritableByteChannel rbc = Channels.newChannel(urlc.getOutputStream());
Run Code Online (Sandbox Code Playgroud)