我从外部进程收到一个字符串.我想使用该String来创建文件名,然后写入该文件.这是我的代码片段:
String s = ... // comes from external source
File currentFile = new File(System.getProperty("user.home"), s);
PrintWriter currentWriter = new PrintWriter(currentFile);
Run Code Online (Sandbox Code Playgroud)
如果s包含无效字符,例如基于Unix的OS中的"/",则会(正确地)抛出java.io.FileNotFoundException.
如何安全地编码String以便它可以用作文件名?
编辑:我希望的是一个API调用,它为我做这个.
我可以做这个:
String s = ... // comes from external source
File currentFile = new File(System.getProperty("user.home"), URLEncoder.encode(s, "UTF-8"));
PrintWriter currentWriter = new PrintWriter(currentFile);
Run Code Online (Sandbox Code Playgroud)
但我不确定URLEncoder是否可靠用于此目的.
我还没有真正在现实世界的项目中使用JSON - 我几乎总是依赖于XML.
对于专用服务器,最好将连接字符串存储在web.config或machine.config中吗?每种方法的优点和缺点是什么?
谢谢
编辑:我关注这里的安全性,所以问题是哪种方法更安全.
假设我有这样的代码......
- (id) init {
...
self.myImage1 = [NSImage imageNamed:@"some_image_name"]; // setter retains
...
}
- (void) setStatusItemImage
{
[self.statusItem setImage:self.myImage1];
}
Run Code Online (Sandbox Code Playgroud)
我还想为状态项设置动画,因此我创建了6个"更新"状态项图标的变体,并将其循环到NSTimer上,目标方法与上面类似.问题是:
我怎样才能提取的列表Types从ObjectContext?
例如,我有对象上下文包含名为"Bank"的实体和名为"Company"的实体.我想获得它们的EntityObject类型.
我怎样才能做到这一点?
SEO的标题标签的最佳分隔符是什么.
这个
<title>This is a sample title - mysite.com</title>
Run Code Online (Sandbox Code Playgroud)
要么
<title>This is a sample title | mysite.com</title>
Run Code Online (Sandbox Code Playgroud)
在Wordpress中,SEO包的默认值为|.与SEO有关的最佳分隔符是什么?为什么?
我有两台linux机器,unix排序似乎表现不同.我相信我已经把它缩小到对下划线角色的处理.
如果我运行sort tmp,其中tmp包含以下两行:
aa_d_hh
aa_dh_ey
Run Code Online (Sandbox Code Playgroud)
一台机器输出
aa_d_hh
aa_dh_ey
Run Code Online (Sandbox Code Playgroud)
(即'_'在'h'之前),而其他输出
aa_dh_ey
aa_d_hh
Run Code Online (Sandbox Code Playgroud)
(即'h'在'_'之前).我需要这些机器一起运行(因为我稍后使用sort -m来合并非常大的文件).
有什么方法可以强制排序以某种方式表现吗?
谢谢.
我知道所有关于为什么不应该从内核读/写文件的讨论,而是如何使用/ proc或netlink来做到这一点.无论如何我想读/写.我也读过" 驾驶我的坚果 - 你应该在内核中做的事情".
但问题是2.6.30不能导出sys_read().相反,它包含在内SYSCALL_DEFINE3.因此,如果我在我的模块中使用它,我会收到以下警告:
WARNING: "sys_read" [xxx.ko] undefined!
WARNING: "sys_open" [xxx.ko] undefined!
Run Code Online (Sandbox Code Playgroud)
显然insmod无法加载模块,因为链接没有正确发生.
问题:
sys_read()/ sys_open()不导出)?SYSCALL_DEFINEn()内核中包含宏的系统调用?使用OpenID登录用户时,是否对OpenID URI(或标识符)执行了任何验证?或者你只是让图书馆处理它(如DotNetOpenAuth).
我正在努力解决这个问题.说我有以下代码:
class Animal { }
class Mammal extends Animal { }
class Giraffe extends Mammal { }
...
public static List<? extends Mammal> getMammals() { return ...; }
...
public static void main(String[] args) {
List<Mammal> mammals = getMammals(); // compilation error
}
Run Code Online (Sandbox Code Playgroud)
为什么赋值会导致编译错误?错误是这样的:
Type mismatch: cannot convert from List<capture#4-of ? extends Mammal> to List<Mammal>
Run Code Online (Sandbox Code Playgroud)
根据我对协方差的理解,该getMammals()方法返回一个list始终包含Mammal对象的方法,因此它应该是可分配的.我错过了什么?
java ×2
.net ×1
asp.net ×1
c ×1
c# ×1
cocoa ×1
collation ×1
covariance ×1
encoding ×1
file ×1
file-io ×1
javascript ×1
json ×1
linux-kernel ×1
nsimage ×1
nsstatusitem ×1
nstimer ×1
objective-c ×1
openid ×1
php ×1
seo ×1
sorting ×1
string ×1
unix ×1
validation ×1
xml ×1