可能重复:
Java中的文件到byte []
我想从文件中读取数据并将其解组为Parcel.在文档中不清楚,FileInputStream具有读取其所有内容的方法.为了实现这一点,我做了以下事情:
FileInputStream filein = context.openFileInput(FILENAME);
int read = 0;
int offset = 0;
int chunk_size = 1024;
int total_size = 0;
ArrayList<byte[]> chunks = new ArrayList<byte[]>();
chunks.add(new byte[chunk_size]);
//first I read data from file chunk by chunk
while ( (read = filein.read(chunks.get(chunks.size()-1), offset, buffer_size)) != -1) {
total_size+=read;
if (read == buffer_size) {
chunks.add(new byte[buffer_size]);
}
}
int index = 0;
// then I create big buffer
byte[] rawdata = new byte[total_size];
// then I copy data …Run Code Online (Sandbox Code Playgroud) 这是我们目前的情况:
cache_instance = cache.get_cache("cache_entry")静态代码.在调查过程中,我发现错误发生的那一刻会cache_instance.get(key)返回错误的值,尽管get_cache("cache_entry").get(key)在下一行返回正确的值.这意味着错误消失太快或由于某种原因cache_instance对象被破坏.django的缓存线程返回的缓存实例对象不安全吗?MemoryError这些天至少记录了一个我知道,所有这些听起来都像是某种魔法......而且,真的,任何想法如何可能或如何调试这将是非常感激的.
PS:我目前的假设是这与多处理有关:只要在静态代码中创建缓存实例,并且在工作进程分叉之前,这将导致所有工作者共享相同的套接字(这听起来似乎合理吗?)
我有一个Android项目,它有本机代码.在这个原生部分,我使用OpenCV.当我使用OpenCV 2.3.1时,一切都编译好了,但是当我试图切换到版本2.4.1时,我遇到了问题:
它编译没有任何错误,但是当我启动我的应用程序时,由于UnsatisfiedLinkError,它无法加载我的库.
Cannot load library: link_image[1936]: 37 could not load needed library 'libopencv_java.so' for 'mylibrary.so' (load_library[1091]: Library 'libopencv_java.so' not found)
Run Code Online (Sandbox Code Playgroud)
我看到Open CV尝试加载libopencv_java.so,但我不需要它,我不在java代码中使用OpenCV.这个图书馆的大小> 5M.
如何编译而不将此lib添加到项目中?
我遇到了问题:ACTION_IMAGE_CAPTURE intent的行为取决于硬件制造商.
我认为,从照片库插入相机拍摄照片的最佳方法必须是以下内容
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, CAPTURE_IMAGE_REQUEST);
Run Code Online (Sandbox Code Playgroud)
然后得到uri onActivityResult:
switch (requestCode) {
case CAPTURE_IMAGE_REQUEST: {
if(resultCode == Activity.RESULT_OK) {
Uri uri = intent.getData();// content uri of photo in media gallery
//do something with this
}
break;
}
Run Code Online (Sandbox Code Playgroud)
但是我知道,这在许多设备上都不起作用; 此外,我发现了几种不同的Camera app行为场景:
那么,是否存在管理此类问题的最佳实践,以涵盖广泛的设备和制造商?
在这种情况下,我需要从相机拍照,将其插入画廊,然后在画廊中获取uri的照片.
我试图能够同时响应传入的Web请求,而处理请求包括相当长的IO调用.我打算使用gevent,因为它应该是"非阻塞的"
我发现的问题是,即使我有很多gevent线程,请求也会按顺序处理.由于某种原因,请求由单个绿色线程提供.
我有nginx(默认配置在这里我认为不相关),我也有uwsgi和简单的wsgi应用程序模拟IO阻塞调用gevent.sleep().他们来了:
uwsgi.ini
[uwsgi]
chdir = /srv/website
home = /srv/website/env
module = wsgi:app
socket = /tmp/uwsgi_mead.sock
#daemonize = /data/work/zx900/mob-effect.mead/logs/uwsgi.log
processes = 1
gevent = 100
gevent-monkey-patch
Run Code Online (Sandbox Code Playgroud)
wsgi.py
import gevent
import time
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
t0 = time.time()
gevent.sleep(10.0)
t1 = time.time()
return "{1} - {0} = {2}".format(t0, t1, t1 - t0)
Run Code Online (Sandbox Code Playgroud)
然后我同时(几乎)在我的浏览器中打开两个标签,这是我得到的结果:
1392297388.98 - 1392297378.98 = 10.0021491051
# first tab, processing finished at 1392297378.98
1392297398.99 - 1392297388.99 = 10.0081849098
# second tab, …Run Code Online (Sandbox Code Playgroud)