System.setOut(ps)重定义了输出流后,如何重定向控制台输出

本文介绍了一种通过使用System.setOut方法结合PrintStream与FileOutputStream来实现对Java程序的标准输出流进行重定向的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以用
System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));
重新定位到标准输出流

PS C:\Users\Administrator> # 1. 验证模块是否加载 PS C:\Users\Administrator> Get-Module PSHttpClient PS C:\Users\Administrator> PS C:\Users\Administrator> # 预期输出PS C:\Users\Administrator> # ModuleType Version Name ExportedCommands PS C:\Users\Administrator> # ---------- ------- ---- ---------------- PS C:\Users\Administrator> # Script 1.2.1 PSHttpClient Invoke-EnhancedCurlRequest PS C:\Users\Administrator> PS C:\Users\Administrator> # 2. 测试快捷命令 PS C:\Users\Administrator> http https://httpbin.org/user-agent StatusCode : 200 StatusMessage : OK Content : { "user-agent": null } Headers : {[Connection, System.String[]], [Access-Control-Allow-Origin, System.String[]], [Access-Control-Allow-C redentials, System.String[]], [Date, System.String[]]...} Technology : HttpClient (.NET) Protocol : 1.1 ElapsedMs : 2092 PS C:\Users\Administrator> PS C:\Users\Administrator> # 预期输出PS C:\Users\Administrator> # StatusCode Protocol ElapsedMs Content PS C:\Users\Administrator> # ---------- -------- --------- ------- PS C:\Users\Administrator> # 200 1.1 320 {"user-agent": "PSHttpClient/1.2.1"} PS C:\Users\Administrator> PS C:\Users\Administrator> # 3. 检查模块路径 PS C:\Users\Administrator> (Get-Module PSHttpClient).Path E:\PowerShellModules\PSHttpClient\1.2.1\PSHttpClient.psm1 PS C:\Users\Administrator> PS C:\Users\Administrator> # 预期输出PS C:\Users\Administrator> # E:\PowerShellModules\PSHttpClient\1.2.1\PSHttpClient.psd1 PS C:\Users\Administrator> PS C:\Users\Administrator> # 4. 验证配置文件 PS C:\Users\Administrator> Get-Content $PROFILE -Tail 10 function http { [CmdletBinding()] param( [Parameter(Mandatory=$true)] [string]$Uri, [object]$Body, [hashtable]$Headers ) Invoke-EnhancedCurlRequest -Uri $Uri -Body $Body -Headers $Headers @args } PS C:\Users\Administrator> PS C:\Users\Administrator> # 预期输出包含: PS C:\Users\Administrator> # function http { PS C:\Users\Administrator> # [CmdletBinding()] PS C:\Users\Administrator> # param( PS C:\Users\Administrator> # [Parameter(Mandatory=$true)] PS C:\Users\Administrator> # [string]$Uri, PS C:\Users\Administrator> # [object]$Body, PS C:\Users\Administrator> # [hashtable]$Headers PS C:\Users\Administrator> # ) PS C:\Users\Administrator> # Invoke-EnhancedCurlRequest -Uri $Uri -Body $Body -Headers $Headers @args PS C:\Users\Administrator> # } PS C:\Users\Administrator> PS C:\Users\Administrator> $data = @{ >> name = "John Doe" >> email = "john@example.com" >> } >> PS C:\Users\Administrator> $result = http -Method POST -Uri "https://httpbin.org/post" -Body $data http : 找不到与参数名称“Method”匹配的参数。 所在位置 行:1 字符: 16 + $result = http -Method POST -Uri "https://httpbin.org/post" -Body $da ... + ~~~~~~~ + CategoryInfo : InvalidArgument: (:) [http],ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,http PS C:\Users\Administrator> $result.Content | ConvertFrom-Json | Select-Object -ExpandProperty form ConvertFrom-Json : 无法将参数绑定到参数“InputObject”,因为该参数是空值。 所在位置 行:1 字符: 19 + $result.Content | ConvertFrom-Json | Select-Object -ExpandProperty fo ... + ~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [ConvertFrom-Json],ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.ConvertFrom JsonCommand PS C:\Users\Administrator> $headers = @{ >> "X-API-Key" = "your-api-key" >> "Accept" = "application/json" >> } >> PS C:\Users\Administrator> http -Uri "https://api.example.com/data" -Headers $headers StatusCode StatusMessage Error ---------- ------------- ----- 500 Internal Error 使用“0”个参数调用“GetResult”时发生异常:“发送请求时出错。” PS C:\Users\Administrator> # 重新加载模块和配置文件 PS C:\Users\Administrator> Remove-Module PSHttpClient -ErrorAction SilentlyContinue PS C:\Users\Administrator> . $PROFILE PS C:\Users\Administrator> Import-Module PSHttpClient -Force Import-Module : 未能加载指定的模块“PSHttpClient”,因为在任何模块目录中都没有找到有效模块文件。 所在位置 行:1 字符: 1 + Import-Module PSHttpClient -Force + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ResourceUnavailable: (PSHttpClient:String) [Import-Module], FileNotFoundException + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand PS C:\Users\Administrator> PS C:\Users\Administrator> # 如果快捷命令不可用 PS C:\Users\Administrator> if (-not (Get-Command http -ErrorAction SilentlyContinue)) { >> function http { >> param([string]$Uri, [object]$Body, [hashtable]$Headers) >> Invoke-EnhancedCurlRequest -Uri $Uri -Body $Body -Headers $Headers @args >> } >> } >> PS C:\Users\Administrator>
最新发布
08-17
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值