小编GPX*_*GPX的帖子

在Windows上检查Java中文件是否为空的最有效方法

我试图在Windows上用Java检查日志文件是否为空(意味着没有错误).到目前为止,我尝试过使用2种方法.

方法1(失败)

FileInputStream fis = new FileInputStream(new File(sLogFilename));  
int iByteCount = fis.read();  
if (iByteCount == -1)  
    System.out.println("NO ERRORS!");
else
    System.out.println("SOME ERRORS!");
Run Code Online (Sandbox Code Playgroud)

方法2(失败)

File logFile = new File(sLogFilename);
if(logFile.length() == 0)
    System.out.println("NO ERRORS!");
else
    System.out.println("SOME ERRORS!");
Run Code Online (Sandbox Code Playgroud)

现在,当日志文件为空(没有内容)时,这些方法都会失败,但文件大小不为零(2个字节).

检查文件是否为空的最有效最准确的方法是什么?我要求效率,因为我必须循环检查文件大小数千次.

注意:文件大小只会徘徊在几到10 KB左右!

方法3(失败)

按照@ Cygnusx1的建议,我也试过使用FileReader过,但没有成功.这是片段,如果有人感兴趣的话.

Reader reader = new FileReader(sLogFilename);
int readSize = reader.read();
if (readSize == -1)
    System.out.println("NO ERRORS!");
else
    System.out.println("SOME ERRORS!");
Run Code Online (Sandbox Code Playgroud)

java filesystems file-io logging file

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

在SQLCMD for Linux中使用变量

我正在使用Korn shell在Linux机箱(Red Hat Enterprise Server 5.3 tikanga)上运行适用于Linux的Microsoft SQLCMD工具(CTP 11.0.1720.0).该工具已正确配置,除了使用脚本变量外,在所有情况下均可使用.

我有一个SQL脚本,看起来像这样.

SELECT COLUMN1 FROM TABLE WHERE COLUMN2 = '$(param1)';
Run Code Online (Sandbox Code Playgroud)

而且我正在运行这样的sqlcmd命令.

sqlcmd -S server -d database -U user -P pass -i input.sql -v param1="DUMMYVALUE"
Run Code Online (Sandbox Code Playgroud)

当我执行上面的命令时,我收到以下错误.

Sqlcmd: 'param1=DUMMYVALUE': Invalid argument. Enter '-?' for help.

帮助列出以下语法.

[-v var = "value"...]

我在这里错过了什么吗?

linux sql-server sqlcmd

10
推荐指数
2
解决办法
5215
查看次数

在C#中将嵌入式资源作为文件复制到磁盘

我有一个INF文件保存为我的C#项目中的嵌入式资源.我试图按需将此文件保存到本地位置.我正在使用这种方法.

public static void SaveResourceToDisk(string ResourceName, string FileToExtractTo)
{
    Stream s = Assembly.GetExecutingAssembly().GetManifestResourceStream(ResourceName);
    FileStream resourceFile = new FileStream(FileToExtractTo, FileMode.Create);

    byte[] b = new byte[s.Length + 1];
    s.Read(b, 0, Convert.ToInt32(s.Length));
    resourceFile.Write(b, 0, Convert.ToInt32(b.Length - 1));
    resourceFile.Flush();
    resourceFile.Close();

    resourceFile = null;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试调用此方法(传递资源名称和命名空间名称)时,我收到错误:

你调用的对象是空的

我在这做错了什么?

c# embedded-resource

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

使用Javascript获取页面的完整源代码

我正在尝试捕获并将页面中的所有JS错误发布到Django视图.我正在做这样的事情.

<script>
    window.onerror = function(errorMsg, file, lineNumber) {
        post_data = {error: errorMsg, file: file, 
        location: window.location.href, lineNumber: lineNumber,
        ua: navigator.userAgent};
        jQuery.post('/js_errors/', post_data);
    }
</script>
Run Code Online (Sandbox Code Playgroud)

问题:我也想添加实际行.在给定行号的情况下,如何从页面源获取行?

到目前为止,我已经尝试过这个(占各种换行符):

document.getElementsByTagName('html')[0].outerHTML.split(/\r?\n/)[lineNumber];
Run Code Online (Sandbox Code Playgroud)

但是,这并没有给我正确的行号.我在这里错过了什么?

html javascript jquery dom

9
推荐指数
1
解决办法
233
查看次数

将vcards转换为Windows-1252

我正在尝试用C#编写一个程序,它将带有多个联系人的vCard(VCF)文件拆分为每个联系人的单个文件.据我所知,vCard需要保存为ANSI(1252)才能让大多数手机读取它们.

但是,如果我用打开VCF档案StreamReader,然后将其用回写StreamWriter(设置1252的编码格式),所有的特殊字符,如å,æø越来越写成?.当然ANSI(1252)会支持这些字符.我该如何解决?

编辑:这是我用来读写文件的代码片段.

private void ReadFile()
{
   StreamReader sreader = new StreamReader(sourceVCFFile);
   string fullFileContents = sreader.ReadToEnd();
}

private void WriteFile()
{
   StreamWriter swriter = new StreamWriter(sourceVCFFile, false, Encoding.GetEncoding(1252));
   swriter.Write(fullFileContents);
}
Run Code Online (Sandbox Code Playgroud)

.net c# unicode character-encoding windows-1252

6
推荐指数
1
解决办法
9506
查看次数

如何将文本文件拆分成多个文件?

在C#中,将文本文件拆分为多个文本文件(拆分分隔符为空行)的最有效方法是什么,同时保留字符编码?

.net c# string performance text

5
推荐指数
1
解决办法
2万
查看次数

在C#中将ANSI(Windows 1252)转换为UTF8

之前我已经在Stack Overflow上以循环方式询问了这个问题,并希望这次能够做到正确.如何将ANSI(代码页1252)转换为UTF-8,同时保留特殊字符?(我知道UTF-8支持比ANSI更大的字符集,但是如果我可以保留ANSI支持的所有UTF-8字符并用其他?东西替换其余的字符集就可以了)

为什么我要转换ANSI→UTF-8

我基本上编写的程序将vCard文件(VCF)拆分为单个文件,每个文件包含一个联系人.我注意到诺基亚和索尼爱立信手机以UTF-8(无BOM)保存备份VCF文件,但Android将其保存为ANSI(1252).上帝知道其他手机以什么格式保存它们!

所以我的问题是

  1. vCard文件的字符编码是否有行业标准?
  2. 哪个更容易解决我的问题?将ANSI转换为UTF8(和/或反过来)或尝试检测输入文件具有哪种编码并通知用户有关它?

tl; dr 需要知道如何将字符编码从(ANSI/UTF8)转换为(UTF8/ANSI),同时保留所有特殊字符.

.net c# string character-encoding special-characters

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

在Python中控制台上的中心对齐文本

我正在创建一个简单的基于控制台的Python(版本2.4)脚本,它将在Ba​​sh shell上运行.它是一个简单的基于菜单的脚本,向用户显示一组选项,并根据用户输入执行特定任务.

当脚本启动时,我希望它清除屏幕并在屏幕中央显示菜单.我可以从中获取控制台宽度stty size.我如何进行中心对齐文本?

python shell console text

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

将DNS设置为以编程方式"自动获取"

在.NET上使用C#,如何将DNS服务器设置为"自动获取"?我可以将IP地址设置为所需的值.

ManagementClass mClass = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection mObjCol = mClass.GetInstances();
foreach (ManagementObject mObj in mObjCol)
{
  if ((bool)mObj["IPEnabled"])
  {
     ManagementBaseObject mboDNS = mObj.GetMethodParameters("SetDNSServerSearchOrder");
     if (mboDNS != null)
     {
        //Assume X.X.X.X and X.X.X.X are the IPs.
        string[] sIPs = { "X.X.X.X", "X.X.X.X" };
        mboDNS["DNSServerSearchOrder"] = sIPs;
        mObj.InvokeMethod("SetDNSServerSearchOrder", mboDNS, null);
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试将两个IP都设置为null,sIps = { null, null };但最终不会更改设置.

.net c# dns networking winforms

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

将IBM DB2 IXF文件转换为CSV或XML

如何将导出的IXF文件(使用db2 export)转换为人类可读的格式,例如CSV或XML?我很满意在Python或.NET C#中进行此操作。

c# python csv db2

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