如果你有一个java.io.InputStream
对象,你应该如何处理该对象并产生一个String
?
假设我有一个InputStream
包含文本数据,并且我想将其转换为a String
,所以例如我可以将其写入日志文件.
采取InputStream
并将其转换为最简单的方法是String
什么?
public String convertStreamToString(InputStream is) {
// ???
}
Run Code Online (Sandbox Code Playgroud) 要将stdout重定向到Bash中的截断文件,我知道要使用:
cmd > file.txt
Run Code Online (Sandbox Code Playgroud)
要在Bash中重定向stdout,追加到文件,我知道要使用:
cmd >> file.txt
Run Code Online (Sandbox Code Playgroud)
要将stdout和stderr重定向到截断的文件,我知道要使用:
cmd &> file.txt
Run Code Online (Sandbox Code Playgroud)
如何重定向附加到文件的stdout和stderr?cmd &>> file.txt
不适合我.
我需要为一个方法编写单元测试,该方法接受来自文本文件的流.我想做这样的事情:
Stream s = GenerateStreamFromString("a,b \n c,d");
Run Code Online (Sandbox Code Playgroud) 如何在C#中将struct转换System.Byte
byte[]
为System.IO.Stream
对象?
我有一个StreamReader
用流初始化的对象,现在我想将此流保存到磁盘(流可以是.gif
或.jpg
或.pdf
).
现有守则:
StreamReader sr = new StreamReader(myOtherObject.InputStream);
Run Code Online (Sandbox Code Playgroud)
我也有编码类型,如果我将它存储到SQL Server,我将需要,对吗?
将输出从java.io.OutputStream传递到Java中的String的最佳方法是什么?
说我有方法:
writeToStream(Object o, OutputStream out)
Run Code Online (Sandbox Code Playgroud)
它将对象中的某些数据写入给定流.但是,我希望尽可能轻松地将此输出转换为String.
我正在考虑写一个这样的课程(未经测试):
class StringOutputStream extends OutputStream {
StringBuilder mBuf;
public void write(int byte) throws IOException {
mBuf.append((char) byte);
}
public String getString() {
return mBuf.toString();
}
}
Run Code Online (Sandbox Code Playgroud)
但有更好的方法吗?我只想进行测试!
我惊讶地发现,今天,我不能追查任何简单的方法的内容写入InputStream
到OutputStream
Java中.显然,字节缓冲区代码并不难写,但我怀疑我只是遗漏了一些会让我的生活更轻松(代码更清晰)的东西.
那么,给定一个InputStream
in
和一个OutputStream
out
,是否有更简单的方法来编写以下内容?
byte[] buffer = new byte[1024];
int len = in.read(buffer);
while (len != -1) {
out.write(buffer, 0, len);
len = in.read(buffer);
}
Run Code Online (Sandbox Code Playgroud) 我想找到检查文件是否存在于标准C++ 11,C++或C中的最快方法.我有数千个文件,在对它们做一些事情之前我需要检查它们是否全部存在.我可以写什么而不是/* SOMETHING */
以下功能?
inline bool exist(const std::string& name)
{
/* SOMETHING */
}
Run Code Online (Sandbox Code Playgroud) 请求是一个非常好的库.我想用它来下载大文件(> 1GB).问题是不可能将整个文件保存在内存中我需要以块的形式读取它.这是以下代码的问题
import requests
def DownloadFile(url)
local_filename = url.split('/')[-1]
r = requests.get(url)
f = open(local_filename, 'wb')
for chunk in r.iter_content(chunk_size=512 * 1024):
if chunk: # filter out keep-alive new chunks
f.write(chunk)
f.close()
return
Run Code Online (Sandbox Code Playgroud)
由于某种原因它不起作用.在将其保存到文件之前,它仍会将响应加载到内存中.
UPDATE
如果你需要一个可以从FTP下载大文件的小客户端(Python 2.x /3.x),你可以在这里找到它.它支持多线程和重新连接(它确实监视连接),它还为下载任务调整套接字参数.