Java中的URL连接(FTP)-简单问题
我有一个简单的问题。我正在尝试将文件上传到Java中的ftp服务器。
我的计算机上有一个文件,我想复制该文件并上传。我尝试将文件的每个字节手动写入输出流,但这不适用于复杂文件,例如zip文件或pdf文件。
File file = some file on my computer;String name = file.getName();
URL url = new URL("ftp://user:password@domain.com/" + name +";type=i");
URLConnection urlc = url.openConnection();
OutputStream os = urlc.getOutputStream();
//then what do I do?
只是为了踢球,这是我尝试做的事情:
OutputStream os = urlc.getOutputStream();BufferedReader br = new BufferedReader(new FileReader(file));
String line = br.readLine();
while(line != null && (!line.equals(""))) {
os.write(line.getBytes());
os.write("\n".getBytes());
line = br.readLine();
}
os.close();
例如,当我使用pdf进行此操作,然后尝试打开使用该程序运行的pdf时,它表示尝试打开pdf时发生错误。我猜是因为我要在文件中写入“ \
n”?如何不执行此操作就复制文件?
回答:
当您尝试复制二进制文件的逐字节精确内容时,请勿使用Reader
或Writer
类中的任何一个。仅将这些用于纯文本!而是使用InputStream
和OutputStream
类;它们根本不解释数据,而Reader
和Writer
类将数据解释为字符。例如
OutputStream os = urlc.getOutputStream();FileInputStreamReader fis = new FileInputStream(file);
byte[] buffer = new byte[1000];
int count = 0;
while((count = fis.read(buffer)) > 0) {
os.write(buffer, 0, count);
}
您URLConnection
不知道这里的用法是否正确;使用Apache Commons
FTP(在其他地方建议)将是一个好主意。无论如何,这将是读取文件的方式。
以上是 Java中的URL连接(FTP)-简单问题 的全部内容, 来源链接: utcz.com/qa/419592.html