话说。。人啊。都是被逼出来的。。
当年学Java的时候最烂的就是IO这一段。
结果。现在工作了。1年来都没接触IO了。忽然给我一任务。
除了文件还是文件……目的是要分析整个文件的结构。。然后转存到数据库(SCORM大对象)
无奈……在看Demo和做暂时性硬盘存储的时候……无尽的IO。。。
最后整理一点东西……发上来。当作给自己的备忘
判断文件是否存在。
import java.io.File;
File f=new File(scoFile);
/*
我自己遇到的误区 File f=FileInputStream(scoFile);
我说明一下。这个误区是我自己的误区。虽然是很简单的问题。还是希望大家不要鄙视。
相信但凡懂点的都能看明白。我这里new了一个File然后后面读出来的是流……因为我对IO实在是相当烂……顺便说一声。因为使用的开发工具是UltraEdit……(就那个文本编辑器。)所以才会出现这么恶劣的问题。不然直接变异就报红线了……我也就不用调整半天了
*/
//判断文件是否存在
if(f.exists())
{
.........
}
//文件夹路径
String userDir = File.separator + SRTEFILESDIR + File.separator + mUserID + File.separator+ courseID;
File theRTESCODataDir = new File(userDir);
//判断目录是否存在
if( !theRTESCODataDir.isDirectory() )
{
//不存在就创建目录
theRTESCODataDir.mkdirs();
}
//文件路径
String tree = iPath + "CourseImports" + File.separator + courseID + File.separator + "serialize.obj";
//读取到文件流
FileInputStream in = new FileInputStream(tree);
//文件流转成对象流
ObjectInputStream ie = new ObjectInputStream(in);
//从对象流中读取到对象
mySeqActivityTree = (SeqActivityTree)ie.readObject();
//关闭对象流
ie.close();
//关闭文件流
in.close();
在上面判断是否文件存在的地方。我使用了另外一种方法。不是用if(f.exists())
而是直接给路径读入到流里面……然后Try这一句话。如果发生FileNotFoundException
就在catch里面去创建这个文件,再读取……
//我的try写法
try
{
//把文件读入到流里面
fi = new FileInputStream(scoFile);
}
catch( FileNotFoundException fnfe )
{
//我自己的一个方法,创建文件的
fileHandler.initializeStateFile();
//把文件读入到流里面
fi = new FileInputStream(scoFile);
}
//正式的写法
File f=new File(scoFile);
if(f.exists())
{
fi = new FileInputStream(scoFile);
}else
{
fileHandler.initializeStateFile();
fi = new FileInputStream(scoFile);
}
这样子做,我就省去了if的麻烦。又要New文件。又要进行判断。一般Try都是用来执行可能会对程序有破坏性的代码的。但是我这里给他当IF用。是因为我觉得这样很简单,方便。不然还要特意针对的加入一个try。但是如果真对代码较真的话。这里应该是使用 if的。 各位要是觉得我这个办法比较好用方便可以尝试一下。当然,经常对代码record然后规范特别严格的哥们就别试了。回头扣了工资再怪我。哈哈
------------------------------分割线------------------------------
好久没有来博客写东西了。原因有好多。比如说工作上没有什么值得写的……
还有就是一两样东西可能就是一小句话的技巧比如我这里要写的。
用EL表达式取Hashmap的值。。
这个之前我都有一直在用。但是没有记录到我的工作日志里面。
前几天需要取值。忽然发现忘了怎么取了先后尝试了
//第一次尝试
${map.key}
//第二次尝试
${map(key)}
//第三次尝试
${map.get(key)}
然后去网上搜索了一下。发现各位都写的非常麻烦。其实本来是很灵活的一个东西
我发现各位都一定要配合这个循环或者那个循环的。一般都是以
循环Map,然后直接输出。可是如果我想要指定的呢?
所以给大家一个最简单的用EL获取HashMap的方式
[color=red][b]${map[key]}[/b][/color]
就是这么简单。map的名[]key值。至于map名不用我说。您自己设置的
KEY值的获取方式就多种多样了。看你自己喜好了。虽然是个简单的小技巧
但是我个人觉得很实用。需要的就记下吧!
------------------------------分割线------------------------------
js 获得地址栏中的参数值
http://www.test.com:8080?a=1&b=2&c=3
得到的值分别是:1,2,3
这个方法是从中文Java技术网(2)群中的 阿喀琉斯之踵 手里要过来的。
这里就不透露QQ号码了。嘿嘿。这里只一次获得值。想要更多元化的话。自己去修改~
--------------------------最后分割一次---------------------------
最后一次分割线就是描述一下最近做的事情了……
最近一到放假就闷在家里……
干什么?练琴……电吉他……
都2年多没玩了。所以啊。人都是逼出来的……
就剩下一把吉他了。。然后音箱都没有……
最近找了一个木工师傅。用多层板做了一个箱子。
然后打算自己DIY音箱呢。……
我本来想说,做一个最简单的音箱。不要带失真效果了。
直接只有扩音就好了…………这样能好点。
我偶像给我举了一个例子。我就决定带上失真效果了……
我偶像是这么说的:"买自行车附送健身器"。
最后说一句这段时间的座右铭………
[b][size=medium][color=violet]如果有一天,你发现我疯了。那可能是你疯了[/color][/size][/b]