易截截图软件、单文件、免安装、纯绿色、仅160KB

在Java中锁文件的例子

1.如果在下面的代码中,tryLock改成lock,那么会一直等待,直到能够锁上文件为止,但tryLock会立即返回。
如果一个调用了tryLock,或lock并且成功锁上指定文件后的程序,在没有释放文件锁的情况下(没有调用release)程序就结束(包含强制结束的情况),那么文件锁会自动被释放。
2.代码中的sleep是为了便于验证程序用的。比如,在sleep阶段,你可以试着修改别锁住的文件并保存更改。或者再次调用本程序来验证。
本程序在如下平台下验证通过:
OS: Windwos XP
java version "1.6.0_20"
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
public class FileLock {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("##################### start. ");
if (args.length != 1) {
System.out.println("parameter is invalid.");
return;
}
RandomAccessFile input = null;
try {
input = new RandomAccessFile(args[0], "rw");
} catch (FileNotFoundException fe) {
System.out.println("file is not found.");
return;
}
FileChannel channel = input.getChannel();
java.nio.channels.FileLock lock = null;
try {
// Lock is existed, tryLock return null.
lock = channel.tryLock();
System.out.println("lock called.");

if (lock == null) {
System.out.println("lock is null");
return;
}
if (lock.isShared()) {
System.out.println("lock isShared.");
} else {
System.out.println("lock not Shared.");
}
if (lock.isValid()) {
System.out.println("lock isValid.");
} else {
System.out.println("lock Valid.");
}
try {
Thread.sleep(10000);
} catch (InterruptedException ie) {
System.out.println("InterruptedException.");
}
} catch (IOException ie) {
System.out.println("lock file failed.");
System.out.println(ie.toString());
} finally {
try {
if (lock != null) {
lock.release();
}
channel.close();
if (input


相关文档:

如何在Oracle中使用Java存储过程 (详解)

其实,这篇短文,我早就应该写了。因为,java存储过程今后在各大数据库厂商中越来越流行,功能也越来越强大。这里以Oracle为例,介绍一下java存储过程的具体用法。
一、如何创建java存储过程?
通常有三种方法来创建java存储过程。
1. 使用oracle的sql语句来创建:
e.g. 使用create or replace and compile java source ......

用Java写爬网页的小工具

其实也不是爬网页,只是从一个XML文件取URL,然后抓取网页内容。
主要有几点,备忘:
1. 全局代理,设置之后所有的URL都使用此代理,这样可以直接调用FileUtils.copyURLToFile:
private void initProxy(String host, int port,
final String username, final String password) {
Authenticator.setDefault(new Aut ......

Java Annotation手册

原文:http://www.matrix.org.cn/resource/article/44/44055_Java+Annotation+Reflect.html

键字:java,annotation,reflect
前言:

上篇文章《Java Annotation入门》
中概要性的介绍了Annotation的定义、使用,范围涵盖较广,但是
深度不够。所以作者在《Java Annotation入门》后,继续整理了Annotation的概念和 ......

JAVA并发编程实践

最近读完<Java并发编程实践>,无疑这是一本好书,它使得我对线程,锁,以及与并发相关的
一些知识体系更加完备,闲话不多说,下面我系统梳理了下里面的一些理论要点,相信实践上
面,大家或多或少都会有体会,那么用理论的知识点将实践体会笼络起来,将会形成更加牢固
和完备的知识体系,至少我这么认为,写这一篇笔记也是用以 ......

java字符编码原理浅析

本周遇到一个java乱码问题,于是对java的编码问题做了一些实验和了解。简单分析如下:
先看下如下代码:
import
java.io.UnsupportedEncodingException;
public
class
CharSetTest {

public
static
void
main(String[] args)
throws
UnsupportedEncodingException {
String test =
"
篮球
" ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号