Tôi cần một hàm rất đơn giản cho phép tôi đọc 1k byte đầu tiên của tệp qua FTP. Tôi muốn sử dụng nó trong MATLAB để đọc các dòng đầu tiên và, theo một số tham số, để tải về chỉ các tập tin tôi thực sự cần cuối cùng. Tôi tìm thấy một số ví dụ trực tuyến mà tiếc là không hoạt động. Ở đây tôi đang đề xuất mã mẫu mà tôi đang cố tải xuống một tệp duy nhất (tôi đang sử dụng thư viện Apache).Đọc các byte đầu tiên của một tệp
FTPClient client = new FTPClient();
FileOutputStream fos = null;
try {
client.connect("data.site.org");
// filename to be downloaded.
String filename = "filename.Z";
fos = new FileOutputStream(filename);
// Download file from FTP server
InputStream stream = client.retrieveFileStream("/pub/obs/2008/021/ab120210.08d.Z");
byte[] b = new byte[1024];
stream.read(b);
fos.write(b);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fos != null) {
fos.close();
}
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
lỗi trong luồng được trả về trống. Tôi biết tôi đang đi qua tên thư mục một cách sai lầm, nhưng tôi không thể hiểu làm thế nào tôi phải làm. Tôi đã cố gắng theo nhiều cách.
Tôi cũng đã thử với các lớp Java của URL như:
URL url;
url = new URL("ftp://data.site.org/pub/obs/2008/021/ab120210.08d.Z");
URLConnection con = url.openConnection();
BufferedInputStream in =
new BufferedInputStream(con.getInputStream());
FileOutputStream out =
new FileOutputStream("C:\\filename.Z");
int i;
byte[] bytesIn = new byte[1024];
if ((i = in.read(bytesIn)) >= 0) {
out.write(bytesIn);
}
out.close();
in.close();
nhưng nó được đưa ra một lỗi khi tôi đang đóng InputStream trong!
Tôi chắc chắn bị kẹt. Một số ý kiến về sẽ rất hữu ích!
Chào mừng bạn đến Stackoverflow! Không cần phải thêm thẻ vào tiêu đề của bạn, có một hệ thống thẻ cho điều đó. Vui lòng đọc http://meta.stackexchange.com/q/19190/147072 để biết thêm thông tin. Ngoài ra, bạn không cần phải thêm "Cảm ơn" hoặc tên của bạn ở cuối, mọi người đều biết ơn sự giúp đỡ và tên của bạn được hiển thị trong bảng ký tự của bạn ở góc dưới cùng bên phải của mỗi câu hỏi và câu trả lời bạn tạo. – Patrick