Tag:

从文本文件中删除最后一行

我需要从文本文件中删除最后一行。 我知道如何在C#中打开和保存文本文件,但是如何删除文本文件的最后一行? 文本文件总是不同的大小(有些有80行,有些有20行)。 有人可以告诉我该怎么做吗? 谢谢。

来自Stream的位图:Bug?

我有一个非常奇怪的错误。 我需要缩小图像,缩小质量并转换为JPEG。 这一切都在我将文件保存在磁盘上时有效,但是当我将其保存到Stream时它不起作用。 System.Drawing.Bitmap bitmap = // valid Bitmap from Disk System.IO.Stream stream = new MemoryStream(); // JPEG Encoding System.Drawing.Imaging.ImageCodecInfo jpgEncoder = GetEncoder( System.Drawing.Imaging.ImageFormat.Jpeg ); System.Drawing.Imaging.Encoder encoder2 = System.Drawing.Imaging.Encoder.Quality; System.Drawing.Imaging.EncoderParameters parameters = new System.Drawing.Imaging.EncoderParameters( 1 ); System.Drawing.Imaging.EncoderParameter parameter = new System.Drawing.Imaging.EncoderParameter( encoder2, qualityLevel ); parameters.Param[0] = parameter; // Save downscaled on Disk and stream bitmap.Save( […]

可以返回CryptoStream并且仍然可以正确处理所有内容吗?

如果我有一个我想传递给用户的CryptoStream ,那么天真的方法就是 public Stream GetDecryptedFileStream(string inputFile, byte[] key, byte[] iv) { var fsCrypt = new FileStream(inputFile, FileMode.Open, FileAccess.Read, FileShare.Read); var rmCrypto = new RijndaelManaged(); var transform = rmCrypto.CreateDecryptor(key, iv); var cs = new CryptoStream(fsCrypt, transform, CryptoStreamMode.Read); return cs; } 我知道当我处理CryptoStream ,底层的FileStream 也将被处理掉 。 我正在运行的问题是我如何处理rmCrypto和transform ? RijndaelManaged和ICryptoTransform是一次性类,但处理流不会处理这两个对象。 处理这种情况的正确方法是什么?

HttpWebRequest chunked / async POST

嗨,我想将一些动态生成的内容上传到我的网络API。 在客户端我使用HttpWebRequest。 数据应该上传同步,我想写入流AFTER(!)我执行了HTTP请求。 (从服务器到客户端它确实工作正常,但从客户端到服务器我得到一些例外)。 客户端实现如下: HttpWebRequest httpWebRequest = HttpWebRequest.Create(myUrl) as HttpWebRequest; httpWebRequest.Method = “POST”; httpWebRequest.Headers[“Authorization”] = “Basic ” + … ; httpWebRequest.PreAuthenticate = true; httpWebRequest.SendChunked = true; //httpWebRequest.AllowWriteStreamBuffering = false; //does not help… httpWebRequest.ContentType = “application/octet-stream”; Stream st = httpWebRequest.GetRequestStream(); Task response = httpWebRequest.GetResponseAsync(); // NOW: Write after GetResponse() var b = Encoding.UTF8.GetBytes(“Test1”); st.Write(b, 0, […]

从流开始流程

我有一个包含PDF文件的内存流。 是否可以在不将其保存到硬盘的情况下查看PDF? Process.Start()只接受路径而不是流。 谢谢

如何通过1 c#1读取文件中的字符

我希望我的程序读取所有字符1到1的文本文件,并且当它找到倒置的逗号(“)时,它会在该倒置的逗号之前添加分号。例如,我们在文本文件中有一个段落如下: 这是一个包含大量字符和一些名称和日期的段落。 我叫“Sam”,我出生在“12:00”“中午”。 我住在“任何地方”。 现在我希望输出如下: 这是一个包含大量字符和一些名称和日期的段落。 我的名字;“山姆;” 我出生在;“12:00;” ;“中午;”。 我住在;“任何地方;” 。 它应该使用文件流打开文件,然后读取字符,然后在它找到反转的comman的地方添加分号。 输出应该等于textbox1.text。 我提出的代码: – using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { char ch; int Tchar = 0; StreamReader reader; reader = new StreamReader(@”C:\Users\user1\Documents\data.txt”); do { ch = (char)reader.Read(); Console.Write(ch); if […]

我如何检查过程是否得到输出?

有没有办法表明像标准计算器这样的过程是否得到了输出, 我需要它,因为我有这条线: sr = p1.StandardOutput; 我需要这样做: s = sr.ReadLine(); 只有在计算器中有p1的输出时,例如没有输出,所以程序在ReadLine之后停留。 谢谢大家。 代码 : while (i < asProcesses.Length – 1) { if ((i + 1) == asProcesses.Length – 1 && sOutRedirect != "") break; p1.StartInfo.RedirectStandardOutput = true; p1.StartInfo.FileName = asProcesses[i]; p1.StartInfo.UseShellExecute = false; if(i==0) p1.Start(); sr = p1.StandardOutput; Process p2 = new Process(); p2.StartInfo.RedirectStandardInput = true; […]

序列化类时未标记为可序列化错误

我使用这个代码使用BinaryFormatter序列化结构: private void SerializeObject(string filename, SerializableStructure objectToSerialize) { Stream stream = File.Open(filename, FileMode.Create); BinaryFormatter bFormatter = new BinaryFormatter(); bFormatter.Serialize(stream, objectToSerialize); stream.Close(); } 哪个objectToSerialize是我的结构,我正在调用这个函数: SerializableStructure s = new SerializableStructure(); s.NN = NN; s.SubNNs = SubNNs; s.inputs = inputs; SerializeObject(Application.StartupPath + “\\Save\\” + txtSave.Text + “.bin”, s); 哪个SerializableStructure ,以及NN , SubNNs和输入的类型是可序列化的。 (输入包含一些Points , Rectangles和通用列表)。 现在,当我运行我的代码时,我收到了这个错误: 在Assembly’MainProject中输入’MainProject.Main’,Version = […]

.net中的流式XML序列化

我正在尝试使用XmlSerializer序列化一个非常大的IEnumerable ,而不会将所有对象保留在内存中。 IEnumerable实际上是懒惰的.. 我正在寻找一种流媒体解决方案: 使用标准序列化从IEnumerable序列化到底层流中的对象( 我不想在这里手工处理XML! ) 丢弃内存数据并移至下一个 我正在尝试使用此代码: using (var writer = new StreamWriter(filePath)) { var xmlSerializer = new XmlSerializer(typeof(MyObject)); foreach (var myObject in myObjectsIEnumerable) { xmlSerializer.Serialize(writer, myObject); } } 但我得到多个XML标头,我无法指定根标签所以我的XML无效。 任何的想法? 谢谢

需要帮助了解Stream.Read()

我对逐渐将文件读入缓冲区的步骤感到困惑。 来自MSDN文档 public abstract int Read( byte[] buffer, int offset, int count ) 源自C#的例子 FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read); try { int length = (int)fileStream.Length; // get file length buffer = new byte[length]; // create buffer int count; // actual number of bytes read int sum = 0; // total number of bytes […]