获取文件大小,文件上传速率等java代码
时间: 2023-10-19 19:27:49 浏览: 55
获取文件大小的Java代码:
```java
import java.io.File;
public class FileSize {
public static long getFileSize(String filePath) {
File file = new File(filePath);
if (file.exists() && file.isFile()) {
return file.length();
} else {
return 0;
}
}
}
```
计算上传速率的Java代码:
```java
public class UploadSpeed {
public static double calculateUploadSpeed(long fileSize, long startTime, long endTime) {
double timeElapsed = (endTime - startTime) / 1000.0; // 单位转换为秒
return fileSize / timeElapsed;
}
}
```
上传文件的Java代码:
```java
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
public class FileUploader {
public static void upload(String filePath, String url) throws IOException {
File file = new File(filePath);
if (!file.exists() || !file.isFile()) {
throw new IllegalArgumentException("File does not exist or is not a file.");
}
long fileSize = FileSize.getFileSize(filePath);
long startTime = System.currentTimeMillis();
URL uploadUrl = new URL(url);
HttpURLConnection connection = (HttpURLConnection) uploadUrl.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
// 写入文件数据
try (OutputStream out = connection.getOutputStream();
InputStream in = new FileInputStream(file)) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
}
long endTime = System.currentTimeMillis();
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
double uploadSpeed = UploadSpeed.calculateUploadSpeed(fileSize, startTime, endTime);
System.out.printf("上传成功!文件大小为%d字节,上传速率为%.2f字节/秒", fileSize, uploadSpeed);
} else {
System.out.println("上传失败!");
}
}
}
```