小编tim*_*ner的帖子

java.net.URL读取流到byte []

我试图将URL(使用java包java.net.URL)中的图像读取 到byte []."Everything"工作正常,除了内容不是从流中被读取(图像损坏,它不包含所有图像数据)...字节数组被保存在数据库(BLOB)中.我真的不知道正确的方法是什么,也许你可以给我一个提示:)

这是我的第一种方法(代码格式化,删除了不必要的信息......):

URL u = new URL("http://localhost:8080/images/anImage.jpg");
int contentLength = u.openConnection().getContentLength();
Inputstream openStream = u.openStream();
byte[] binaryData = new byte[contentLength];
openStream.read(binaryData);
openStream.close();
Run Code Online (Sandbox Code Playgroud)

我的第二个方法是这个(因为你会看到内容长度是另一种方式):

URL u = new URL(content);
openStream = u.openStream();
int contentLength = openStream.available();
byte[] binaryData = new byte[contentLength];
openStream.read(binaryData);
openStream.close();
Run Code Online (Sandbox Code Playgroud)

这两个代码都会导致图像损坏...我已经从stackoverflow中读到了这篇文章

java url image bytearray

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

如何通过Intent在Android中打开文件

如何打开以前存储在"privat"文件系统中的文件?该文件由Web服务下载,应存储在本地fs中.尝试通过Intent(Action_View)打开文件时出现"奇怪"错误.虽然文件存在于文件系统中(在模拟器/ eclipse中看到文件浏览器中的文件),但它不会显示在启动的调用galery活动中.而不是图片,galery显示黑色屏幕没有内容(除了操作栏).尝试通过此方法打开pdf/movie/mp3文件时会出现同样的情况(pdf表示文件已损坏).

BTW:存储在本地fs上的数据有效(没有损坏),我从调试器下载文件(通过pull方法),文件可以在我的工作站上打开...

public void onAttachment(Context context, Attachment attachment) {
    try {
        //Attachment is a structured data object that contains of a byte[], filename and mimetype (like image/jpeg)
        FileOutputStream fos = FileOutputStream fos = context.openFileOutput(attachment.getAttachmentFileName(), Context.MODE_PRIVATE);
        fos.write(attachment.getBinary());
        fos.flush();
        fos.close();
        File f = context.getFileStreamPath(attachment.getAttachmentFileName());
        Uri uri = Uri.fromFile(f);          
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(uri,attachment.getAttachmentMimetype());
        context.startActivity(intent);                  
    } catch (IOException e) {
        e.printStackTrace();
    }
}           
Run Code Online (Sandbox Code Playgroud)

filesystems android actionview android-intent

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

支持Pinch-Zoom和Scrolling的Android ImageViewer类

我正在搜索一个ImageViewer库,它在我的应用程序中为给定的URI打开一个图像(webservice提取的图像已经存储在我的应用程序中的安全位置).我非常喜欢"三星Galaxy S"ImageViewer-Activity,因为它使用双指缩放和"滚动"垂直/水平.它也可以在我的三星手机上快速缩放图片:)

我知道我可以打开一个像这样的意图的图像:

Intent i = new Intent(Intent.ACTION_VIEW);  
i.setDataAndType(uri, "image/*");
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

正在调用最合适的查看器,当没有找到时,会引发ActivityNotFoundException.太酷了!

但问题是我不允许打开具有外部意图的图像(出于安全目的).即:用户不应该有可能通过菜单选项将打开的图像保存到他的外部SD卡或将此图片发送到另一个服务(电子邮件/推特等).所以我必须编写自己的ImageViewer-Class(Activity),只能在我的应用程序中调用...不幸的是我不是很熟练的转换图像,所以是否有任何开源项目(或库)涵盖了这个用例?

我已经问谷歌了,发现这个http://code.google.com/p/android-pinch/但是它没有很好地工作(它也没有滚动功能).

谢谢你的提示:)

android scroll transform pinch imageview

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

如何扩展Spring Annotation @Transactional

我必须在我的webapp中使用3个不同的事务管理器.所以我根据Spring参考编写了自己的Annotation (第10.5.6.3节"自定义快捷方式注释").

一个注释(用于使用一个特定的事务管理器)如下所示:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.transaction.annotation.Transactional;

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Transactional("customer")
public @interface CustomerTX{


}
Run Code Online (Sandbox Code Playgroud)

使用自定义的@CustomerTX注释注释我的服务层时,一切正常.但是我必须为我的注释提供更多选项,比如readonly = true,rollbackFor =等等.因为你不能"扩展"一个注释(我真的只需要从Spring扩展@Transactional注释),这是什么正确的实现?

java spring annotations transactional

7
推荐指数
2
解决办法
6178
查看次数

在Android设备上存储大型应用程序数据的位置?

我目前正面临一个问题,我应该在Android设备上存储我的对象结构.

用例:我正在开始调用applicationserver(在AsyncTask的帮助下)),从服务器获取一个众所周知的响应(xml-response),解析数据并最终将其转换为我的对象结构(高度复杂的类图,类之间有很多关联).到目前为止它正在工作,感谢伟大的XMLPullParser;)我想知道在我的活动之间存储(当然还有)获取数据的位置...我已经知道我可以使用sqlite,但我没有或者-mapper(就像在j2ee环境中的hibernate).我也不允许将这些敏感数据存储在设备上(在sqlite或文件系统中),所以我的第一种方法是将这些数据存储在一个单例中(cource保存在内存中......).但是当系统进入低内存时会发生什么,android可以"破坏"存储在我的单例中的数据吗?我已经阅读了有关扩展android.app的内容. class ...那么在Android设备上安全存储对象数据(从"webservice"调用)的最佳方法是什么?

BTW:Android开发很酷!我们目前正在向Android和iPhone移植Windows Mobile 6.5应用程序,我的同事(负责iPhone-dev)一直在抱怨^^

security android store object

7
推荐指数
1
解决办法
2256
查看次数