OutputStream outputStream = new FileOutputStream(savePath); outputStream.write(pdfBytes); 如何查看写入了多少字节
时间: 2024-03-15 14:44:45 浏览: 18
在使用OutputStream将数据写入文件时,您可以调用write方法来将字节写入流中。每次调用write方法时,它将写入一个字节数组,返回值是void类型,表示写入操作是否成功。如果您想知道已经写入了多少字节,可以使用字节数组的length属性来获得写入的字节数。
另外,您可以使用Java IO库中的BufferedOutputStream类来缓存输出。BufferedOutputStream类具有一个内部缓冲区,可以减少实际写入文件的次数,提高性能。当缓冲区已满或调用flush()方法时,BufferedOutputStream将写入缓冲区中的所有数据到底层输出流中。
示例代码:
```
OutputStream outputStream = new FileOutputStream(savePath);
BufferedOutputStream bos = new BufferedOutputStream(outputStream);
bos.write(pdfBytes);
bos.flush();
System.out.println("已写入 " + pdfBytes.length + " 字节");
```
在这个示例中,我们使用了BufferedOutputStream来缓存输出,并在写入完成后调用了flush()方法,以确保所有数据都被写入文件。然后,我们使用pdfBytes数组的length属性来打印写入的字节数。
相关问题
OutputStream outputStream = new FileOutputStream(savePath);为什么写入本地之后的pdf显示undefined,是空白的
这个问题可能有很多原因,以下是一些常见的问题和解决方法:
1. 写入的内容可能不正确:检查您写入文件的内容是否正确,特别是对于PDF文件,确保您写入的是二进制数据而不是文本数据。
2. 写入的方式可能不正确:当您向文件中写入数据时,请确保您使用正确的写入方式。对于PDF文件,您应该使用二进制写入方式,例如使用OutputStream的write(byte[])方法。
3. 写入的位置可能不正确:确保您将数据写入文件的正确位置。如果您在文件的中间写入数据而不是在文件的开头写入数据,可能会导致PDF文件无法正确显示。
4. 文件路径可能不正确:确保您将文件写入正确的路径。如果您将文件写入错误的位置,可能会导致PDF文件无法正确显示。
总之,您需要仔细检查您的代码并尝试确定问题的根本原因,然后采取相应的措施来解决它。
java httpclient.get文件流
您可以使用 Java 的 HttpClient 库来获取文件流。以下是一个简单的示例代码:
```java
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Main {
public static void main(String[] args) {
String fileUrl = "http://example.com/file.txt";
String savePath = "path/to/save/file.txt";
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpGet httpGet = new HttpGet(fileUrl);
try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
InputStream inputStream = response.getEntity().getContent();
OutputStream outputStream = new FileOutputStream(savePath);
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.close();
inputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
上述代码使用 HttpClient 发送 GET 请求获取文件流,并将其保存到本地文件中。您需要将 `fileUrl` 替换为要下载的文件的 URL,将 `savePath` 替换为文件保存的路径和文件名。请确保添加 HttpClient 库的依赖到您的项目中。
这样,您就可以通过 HttpClient 获取文件流并保存到本地文件中了。