我试图在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) 我正在使用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"...]
我在这里错过了什么吗?
我有一个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)
当我尝试调用此方法(传递资源名称和命名空间名称)时,我收到错误:
你调用的对象是空的
我在这做错了什么?
我正在尝试捕获并将页面中的所有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)
但是,这并没有给我正确的行号.我在这里错过了什么?
我正在尝试用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) 在C#中,将文本文件拆分为多个文本文件(拆分分隔符为空行)的最有效方法是什么,同时保留字符编码?
之前我已经在Stack Overflow上以循环方式询问了这个问题,并希望这次能够做到正确.如何将ANSI(代码页1252)转换为UTF-8,同时保留特殊字符?(我知道UTF-8支持比ANSI更大的字符集,但是如果我可以保留ANSI支持的所有UTF-8字符并用其他?东西替换其余的字符集就可以了)
为什么我要转换ANSI→UTF-8
我基本上编写的程序将vCard文件(VCF)拆分为单个文件,每个文件包含一个联系人.我注意到诺基亚和索尼爱立信手机以UTF-8(无BOM)保存备份VCF文件,但Android将其保存为ANSI(1252).上帝知道其他手机以什么格式保存它们!
所以我的问题是
tl; dr 需要知道如何将字符编码从(ANSI/UTF8)转换为(UTF8/ANSI),同时保留所有特殊字符.
我正在创建一个简单的基于控制台的Python(版本2.4)脚本,它将在Bash shell上运行.它是一个简单的基于菜单的脚本,向用户显示一组选项,并根据用户输入执行特定任务.
当脚本启动时,我希望它清除屏幕并在屏幕中央显示菜单.我可以从中获取控制台宽度stty size.我如何进行中心对齐文本?
在.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 };但最终不会更改设置.
如何将导出的IXF文件(使用db2 export)转换为人类可读的格式,例如CSV或XML?我很满意在Python或.NET C#中进行此操作。
c# ×6
.net ×4
python ×2
string ×2
text ×2
console ×1
csv ×1
db2 ×1
dns ×1
dom ×1
file ×1
file-io ×1
filesystems ×1
html ×1
java ×1
javascript ×1
jquery ×1
linux ×1
logging ×1
networking ×1
performance ×1
shell ×1
sql-server ×1
sqlcmd ×1
unicode ×1
windows-1252 ×1
winforms ×1