双方StreamReader并BinaryReader可以用来从二进制文件中的数据(例如)
二进制读取器:
using (FileStream fs = File.Open(@"c:\1.bin",FileMode.Open))
{
byte[] data = new BinaryReader(fs).ReadBytes((int)fs.Length);
Encoding.getstring....
}
Run Code Online (Sandbox Code Playgroud)
StreamReader:
using (FileStream fs = File.Open(@"c:\1.bin",FileMode.Open))
{
using (StreamReader sr = new StreamReader(fs,Encoding.UTF8))
{
var myString=sr.ReadToEnd();
}
}
Run Code Online (Sandbox Code Playgroud)
有什么区别,什么时候应该使用哪个?
我正在运行Amazon EC2实例.当我访问url时,我得到了Apache Test页面,它说我必须将我的文件上传到/var/html/
我的问题是,我该怎么做?我使用Mac OS X的终端来访问实例.
FTP似乎不起作用.还有其他方法吗?
我正在构建一个Facebook画布应用程序,它使用Django加载到iframe中.我希望登录过程与Zynga的工作方式类似.在此方法中,如果您未登录,则会重定向到Facebook登录页面,然后再转到应用程序的权限请求页面(没有任何弹出窗口).
据我所知,Zynga必须使用FBML并转发到URL,如下所示:
http://www.facebook.com/login.php?api_key=[api_key]&canvas=1&fbconnect=0&next=[return_url]
无论如何在iframe加载的python应用程序中实现类似的效果?
有一种方法,在这里展示了如何使用新的PHP SDK来实现正确的重定向,但我试图用新的Python SDK其中只有方法:
def get_user_from_cookie(cookies, app_id, app_secret):
"""
Parses the cookie set by the official Facebook JavaScript SDK.
cookies should be a dictionary-like object mapping cookie names to
cookie values.
...
"""
Run Code Online (Sandbox Code Playgroud)
我有一些使用Javascript SDK和get_user_from_cookie方法的工作代码:
<div id="fb-root">
<script src="http://connect.facebook.net/en_US/all.js"></script>
</div>
<script type="text/javascript">
FB.init({ apiKey: 'apikey', status: true, cookie: true, xfbml: true});
FB.Event.subscribe('auth.login', function(response) {
// Reload the application in the logged-in state
window.top.location = 'http://apps.facebook.com/myapp/';
});
</script>
<fb:login-button>Install MyApp</fb:login-button>
Run Code Online (Sandbox Code Playgroud)
此方法的问题在于,它要求用户单击按钮进行登录,然后通过弹出认证屏幕进行操作.(注意:如果直接调用FB.login,也会出现弹出窗口)
那么......有没有办法使用javascript SDK重定向到登录页面而不是将其作为弹出窗口加载?
谢谢你的帮助!--Eric
我正在尝试创建一个可以将JBox2d世界的对象绘制到画布上的类.
在更新时我打电话给
render.draw(canvas,world);
Run Code Online (Sandbox Code Playgroud)
它将世界和画布传递给绘图类,它将循环遍历世界的对象并将它们绘制到画布中.
public void draw(Canvas canvas, World world)
{
canvas.drawColor(0xFF6699FF);
for ( Body b = world.getBodyList(); b!=null; b.getNext() )
{
Log.e("xy", String.valueOf( b.getPosition().x )+" "+String.valueOf( b.getPosition().y ) );
}
}
Run Code Online (Sandbox Code Playgroud)
然而它似乎进入一个无限循环,后退按钮不起作用,然后它说"没有响应"并提供强制关闭.
在这种情况下,任何想法是什么是在身体中循环的正确方法?
谢谢!
我有一些非常大的长度可能高达50位数.我把它作为字符串输入.但是,我需要对它执行操作.所以,我需要将它们转换为适当的基础,比方说256.
这样做的最佳算法是什么?
我最近继承了一些遗留代码,这些代码大量使用内部类来实现线程.这些内部类使当前JFrame代码单片化,因此我正在重新分解代码以便使用SwingWorker该类.
我的SwingWorker类对Web服务进行了许多API调用,然后返回结果.由于这是异步的,这显然最好在线程内完成.目前,webservice的工作方式需要一些身份验证调用来验证请求.这些调用显然可以返回错误.我想做的是在SwingWorker这些webservice调用未进行身份验证的情况下抛出自定义异常.使用标准Future模式我有类似于以下代码:
SwingWorker(后台线程)
@Override
protected String doInBackground() throws Exception {
if (!authenticationClient.authenticate(userid)) {
throw new PlaceOrderException("Failed to authenticate client");
}
return orderClient.placeOrder( ... );
}
Run Code Online (Sandbox Code Playgroud)
主GUI(EDT线程)
// On the EDT
PlaceOrderWorker placeOrderWorker = new PlaceOrderWorker( ... ) {
// This method is invoked when the worker is finished its task
@Override
protected void done(){
try {
String orderID = get();
// Update some GUI elements using the orderID
} catch(PlaceOrderException …Run Code Online (Sandbox Code Playgroud) java ×2
.net ×1
algorithm ×1
amazon-ec2 ×1
android ×1
binaryreader ×1
box2d ×1
c ×1
c# ×1
django ×1
facebook ×1
file ×1
future ×1
javascript ×1
jbox2d ×1
long-integer ×1
macos ×1
python ×1
streamreader ×1
swing ×1
swingworker ×1
terminal ×1