Box*_*iom 2 c# filestream streamwriter
我正在尝试通过将File作为参数的API上传.srt文件.
该文件存储在服务器上,我正在使用FileStream并StreamWriter写入它:
string path = Server.MapPath("~/App_Data/captions/" + entryId) + ".srt";
FileStream f = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite);
StreamWriter s = new StreamWriter(f);
s.Write(someString);
f.Flush()
// Connecting to API and uploading the file
s.Close();
Run Code Online (Sandbox Code Playgroud)
但是,即使在我的服务器上正确创建了文件,上载的文件也是空的.如果该文件已存在,它将正确上传该文件,但仅包含现有内容,而不包含我添加的其他文本someString.
我认为f.Flush()将确保StreamWriter中的数据被写入并保存到文件中,但似乎并非如此.
我需要做些什么来确保在通过API上传数据之前将数据写入文件?
你现在正在冲洗f,但不是s.你正在冲洗它FileStream,但它StreamWriter 包裹着它,所以它可以很容易地拥有自己的缓冲区.不要忘记,他们FileStream对此一无所知StreamWriter- 这种关系是相反的.
为什么您要上传的文件,你之前目前尚不清楚关闭的StreamWriter,是诚实的.我会用:
File.WriteAllText(path, someString);
// Upload it now
Run Code Online (Sandbox Code Playgroud)
如果你也一定要使用FileStream和StreamWriter,我强烈建议你使用using语句,而不是手动关闭的事情,太...