Console.SetOut重定向到文件最简方式是用using包裹StreamWriter并缓存恢复原输出流;RedirectStandardOutput用于拦截外部进程输出;需注意编码、线程安全及适用场景。Console.SetOut 重定向到文件最简方式直接用 Console.SetOut 替换默认输出流,是 C# 控制台程序保存输出最轻量的方案。它不改原有 Console.WriteLine 调用,也不需要逐行写文件。常见错误是忘记关闭 StreamWriter,导致文件内容没刷出、末尾缺失;或者用完没恢复原 Console.Out,影响后续调试输出。必须用 using 块包裹 StreamWriter,确保 Dispose() 触发刷新和关闭如果程序中其他地方还依赖控制台输出(比如日志、调试语句),重定向前先缓存原始 Console.Out,结束后手动恢复路径用相对路径时,实际写入位置取决于启动目录,不是项目根目录或 exe 所在目录var originalOut = Console.Out;using (var file = new StreamWriter("output.txt")){ Console.SetOut(file); Console.WriteLine("这行会进TXT"); Console.WriteLine("这行也是");} // ← 此处自动 Flush + CloseConsole.SetOut(originalOut); // 恢复控制台输出RedirectStandardOutput 需要 Process.Start 的场景当你调用的是外部命令(比如 dotnet build、git status),而不是自己代码里的 Console.WriteLine,就得靠 ProcessStartInfo.RedirectStandardOutput = true 拦截子进程输出。容易踩的坑是只设了重定向却忘了读取 process.StandardOutput,结果子进程卡死(管道缓冲区满);或者用 ReadToEnd() 阻塞等待,但子进程没退出就永远等下去。务必在 process.Start() 后立即开始读取,推荐用 BeginOutputReadLine() + 事件回调,避免阻塞别漏掉 RedirectStandardError = true,否则错误信息仍打到控制台,看起来像“没重定向成功”Windows 下 cmd/powershell 的编码可能不是 UTF-8,读取时需显式指定 Encoding.Default 或 Encoding.GetEncoding(936)(GBK)StreamWriter 构造函数里 encoding 参数很关键中文乱码不是因为没保存,而是保存时用了系统默认编码(如 GBK),但你用记事本/VS Code 默认以 UTF-8 打开 —— 两者对不上。 Murf AI AI文本转语音生成工具
C#怎么将控制台输出保存到TXT_C#如何重定向输出流【源码】
张小明
前端开发工程师
openEuler 22.03 部署 MySQL 5.7:从 RPM 安装到生产环境安全加固
1. 环境准备与Mariadb清理 在openEuler 22.03上部署MySQL 5.7之前,首先要确保系统环境干净。很多Linux发行版默认会预装Mariadb,这可能导致与MySQL的冲突。我遇到过不少因为残留Mariadb组件导致MySQL服务启动失败的案例,所以彻底清理非常必要…
QGIS布局设计实战:5分钟搞定专业地图格网与CRS投影设置
QGIS布局设计实战:5分钟搞定专业地图格网与CRS投影设置 当你第一次在QGIS中尝试制作专业地图时,是否曾被那些复杂的格网设置和投影选项搞得晕头转向?作为一款开源地理信息系统软件,QGIS的强大功能往往被初学者低估。本文将带你快速…
终极指南:使用ncmdump轻松解密网易云音乐NCM文件
终极指南:使用ncmdump轻松解密网易云音乐NCM文件 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经下载了网易云音乐的NCM格式歌曲,却发现无法在其他播放器上播放?ncmdump就是你的救星&am…
RTKLIB 2.4.3 PPP数据处理避坑指南:从conf文件生成到VS2017命令行参数的正确拼接
RTKLIB 2.4.3 PPP数据处理实战避坑手册:从配置文件解析到VS2017参数排错全流程 第一次在VS2017环境下用RTKLIB跑PPP解算的经历,就像新手司机开手动挡——离合器、油门、换挡时机全要精准配合,稍有不慎就会熄火。作为过来人,我整理…
告别黑屏!Qt5 + FFmpeg 4.4 手把手教你打造自己的本地视频播放器(附完整源码)
Qt5 FFmpeg 4.4 实战:从零构建高性能本地视频播放器 在数字媒体处理领域,视频播放器的开发一直是极具挑战性的任务。本文将带你深入Qt5与FFmpeg 4.4的整合开发,不仅解决常见的黑屏、解码失败等问题,还会分享多个实战技巧。不同于…
告别Init.d!用Magisk实现安卓开机自启动的3个实战场景(含批量部署脚本)
告别Init.d!用Magisk实现安卓开机自启动的3个实战场景(含批量部署脚本) 在安卓设备管理中,开机自启动功能一直是开发者与企业用户的核心需求之一。无论是安全监控、自动化测试还是后台服务保活,能否在系统启动时可靠执…