小编Iai*_*ain的帖子

如何在Java中将String转换为InputStream?

给定一个字符串:

String exampleString = "example";
Run Code Online (Sandbox Code Playgroud)

我如何将其转换为InputStream

java string inputstream type-conversion

826
推荐指数
4
解决办法
65万
查看次数

将字典<string,string>转换为c#中以分号分隔的字符串

简单的开始一天,给出Dictionary<string, string>如下:

var myDict = new Dictionary<string, string>();
myDict["A"] = "1";
myDict["B"] = "2";
myDict["C"] = "3";
myDict["D"] = "4";
Run Code Online (Sandbox Code Playgroud)

我想创建一个字符串: "A=1;B=2;C=3;D=4"

一个示例实现:

var myStringBuilder = new StringBuilder();
bool first = true;
foreach (KeyValuePair<string, string> pair in myDict)
{
    if (first)
    {
        first = false;
    }
    else
    {
        myStringBuilder.Append(";");
    }

    myStringBuilder.AppendFormat("{0}={1}", pair.Key, pair.Value);
}

var myDesiredOutput = myStringBuilder.ToString();
Run Code Online (Sandbox Code Playgroud)

请注意,字典可能少于10个项目,这表明StringBuilder过度.

哪些替代实施更简洁/高效?框架是否有任何有用的功能?

c#

125
推荐指数
3
解决办法
9万
查看次数

如何使用PowerShell替换换行符?

给定test.txt包含:

test
message
Run Code Online (Sandbox Code Playgroud)

我想最终得到:

testing
a message
Run Code Online (Sandbox Code Playgroud)

我认为以下内容应该有效,但它不会:

Get-Content test.txt |% {$_-replace "t`r`n", "ting`r`na "}
Run Code Online (Sandbox Code Playgroud)

我怎样才能找到并替换我所发现的包含CRLF的地方?

powershell

38
推荐指数
4
解决办法
8万
查看次数

在Java中如何使用JUnit验证抛出的异常?

在为Java API编写单元测试时,可能会出现需要对异常执行更详细验证的情况.比JUnit 提供的@test注释提供的更多.

例如,考虑一个应该从其他接口捕获异常的类,包装该异常并抛出包装的异常.您可能需要验证:

  1. 抛出包装异常的确切方法调用.
  2. 包装器异常将原始异常作为其原因.
  3. 包装器异常的消息.

这里的要点是,您希望在单元测试中对异常进行额外验证(而不是关于是否应该验证异常消息等事项的争论).

对此有什么好的方法?

java junit exception-handling exception

28
推荐指数
6
解决办法
3万
查看次数

在C#中,如果2个进程正在读取和写入同一个文件,那么避免进程锁定异常的最佳方法是什么?

使用以下文件读取代码:

using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None))
{
    using (TextReader tr = new StreamReader(fileStream))
    {
        string fileContents = tr.ReadToEnd();
    }
}
Run Code Online (Sandbox Code Playgroud)

并且以下文件编写代码:

using (TextWriter tw = new StreamWriter(fileName))
{
    tw.Write(fileContents);
    tw.Close();
}
Run Code Online (Sandbox Code Playgroud)

可以看到以下异常详细信息:

该进程无法访问文件'c:\ temp\myfile.txt',因为它正由另一个进程使用.

避免这种情况的最佳方法是什么?读者是否需要在收到例外后重试,还是有更好的方法?

请注意,阅读器进程使用FileSystemWatcher来了解文件何时更改.

另请注意,在这种情况下,我不是在寻找在两个进程之间共享字符串的替代方法.

c# file-io distributed

25
推荐指数
2
解决办法
4万
查看次数

在SQL Server 2005上INSERT WHERE COUNT(*)= 0上违反UNIQUE KEY约束

我从多个进程插入一个SQL数据库.过程有时可能会尝试将重复数据插入表中.我试图以一种处理重复的方式编写查询,但我仍然得到:

System.Data.SqlClient.SqlException: Violation of UNIQUE KEY constraint 'UK1_MyTable'. Cannot insert duplicate key in object 'dbo.MyTable'.
The statement has been terminated.
Run Code Online (Sandbox Code Playgroud)

我的查询看起来像:

INSERT INTO MyTable (FieldA, FieldB, FieldC)
SELECT FieldA='AValue', FieldB='BValue', FieldC='CValue'
WHERE (SELECT COUNT(*) FROM MyTable WHERE FieldA='AValue' AND FieldB='BValue' AND FieldC='CValue' ) = 0
Run Code Online (Sandbox Code Playgroud)

约束'UK1_MyConstraint'表示在MyTable中,3个字段的组合应该是唯一的.

我的问题:

  1. 为什么这不起作用?
  2. 我需要进行哪些修改才能因违反约束而无法出现异常?

请注意,我知道还有其他方法可以解决"INSERT if not exists"的原始问题,例如(摘要):

  • 使用TRY CATCH
  • 如果不存在INSERT(在具有可序列化隔离的事务中)

我应该使用其中一种方法吗?

编辑1个 SQL用于创建表:

CREATE TABLE [dbo].[MyTable](
  [Id] [bigint] IDENTITY(1,1) NOT NULL,
  [FieldA] [bigint] NOT NULL,
  [FieldB] [int] NOT NULL,
  [FieldC] [char](3) NULL,
  [FieldD] [float] …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2005

21
推荐指数
2
解决办法
3万
查看次数

如何阻止ASP.NET在第一次加载时从bin加载所有程序集

原生DotNet应用程序将在首次使用时加载所有引用的程序集(及其引用).但是,ASP.NET将在首次访问时加载所有引用的程序集(及其引用).

  1. 这种理解是否正确?

  2. 有没有办法强制ASP.NET按需加载程序集(如本地应用程序)?

  3. 我想解决的具体方案是:

    • bin文件夹包含2个文件:A.dllB.dll.
    • A.dll引用B.dll.
    • B.dll引用C.dll,这是系统中的其他位置.在这种情况下,C.dll丢失了.
    • A.dll由主应用程序加载(使用反射).
    • 遇到的错误(无法加载文件或程序集......)与B.dll缺少的依赖关系有关.
    • 如果缺少C.dll,我们希望应用程序正常运行,因为这是主应用程序的可选组件.
    • 我们无法控制B.dllC.dll的内容.

asp.net

16
推荐指数
2
解决办法
7793
查看次数

如何使用Nant的xmlpoke目标删除节点

给出以下xml:

<rootnode>
   <childnode arg="a">Content A</childnode>
   <childnode arg="b">Content A</childnode>
</rootnode>
Run Code Online (Sandbox Code Playgroud)

XMLPoke与以下XPath一起使用:

rootnode/childnode[arg='b']
Run Code Online (Sandbox Code Playgroud)

结果(如果替换字符串为空)是:

<rootnode>
   <childnode arg="a">Content A</childnode>
   <childnode arg="b"></childnode>
</rootnode>
Run Code Online (Sandbox Code Playgroud)

当我们真正想要移除childnode本身时,已删除了childnode的内容.期望的结果是:

<rootnode>
   <childnode arg="a">Content A</childnode>
</rootnode>
Run Code Online (Sandbox Code Playgroud)

必须根据childnode参数选择子节点.

xml nant xmlpoke

15
推荐指数
1
解决办法
4063
查看次数

如何检查字节数组是否包含Java中的Unicode字符串?

给定一个UTF-8编码字符串或任意二进制数据的字节数组,可以在Java中使用哪些方法来确定它是什么?

该数组可以通过类似于以下的代码生成:

byte[] utf8 = "Hello World".getBytes("UTF-8");
Run Code Online (Sandbox Code Playgroud)

或者,它可能是由类似于以下代码生成的:

byte[] messageContent = new byte[256];
for (int i = 0; i < messageContent.length; i++) {
    messageContent[i] = (byte) i;
}
Run Code Online (Sandbox Code Playgroud)

关键是我们不知道数组包含什么但需要找出以填写以下函数:

public final String getString(final byte[] dataToProcess) {
    // Determine whether dataToProcess contains arbitrary data or a UTF-8 encoded string
    // If dataToProcess contains arbitrary data then we will BASE64 encode it and return.
    // If dataToProcess contains an encoded string then we will decode it and return.
}
Run Code Online (Sandbox Code Playgroud)

如何扩展到覆盖UTF-16或其他编码机制?

java regex unicode utf-8

15
推荐指数
3
解决办法
1万
查看次数

从C#获取无线接入点的BSSID(MAC地址)

如何使用C#获取我的系统连接到的无线接入点的BSSID/MAC(媒体访问控制)地址?

请注意,我对WAP的BSSID感兴趣.这与WAP的网络部分的MAC地址不同.

c# networking wireless

12
推荐指数
1
解决办法
8万
查看次数