`
Michael.solofly
  • 浏览: 58957 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

人都是被逼出来的——IO简单操作、EL取Hashmap、JS获取地址栏参数

阅读更多
话说。。人啊。都是被逼出来的。。

当年学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的方式
${map[key]}
就是这么简单。map的名[]key值。至于map名不用我说。您自己设置的
KEY值的获取方式就多种多样了。看你自己喜好了。虽然是个简单的小技巧
但是我个人觉得很实用。需要的就记下吧!
------------------------------分割线------------------------------
js 获得地址栏中的参数值

http://www.test.com:8080?a=1&b=2&c=3

得到的值分别是:1,2,3

<script type="text/javascript">
   var url = document.location.href;
   getParam(url);
   function getParam(url){
    var a = url.indexOf("=");
    if(a!=-1){
     var s = url.substring(a+1);
     var b = s.indexOf("&");
     if(b!=-1){
      alert(s.substring(0,b));
      getParam(s);
     }else{
      alert(s);
     }
    }
   }
</script>
这个方法是从中文Java技术网(2)群中的 阿喀琉斯之踵 手里要过来的。
这里就不透露QQ号码了。嘿嘿。这里只一次获得值。想要更多元化的话。自己去修改~
--------------------------最后分割一次---------------------------

最后一次分割线就是描述一下最近做的事情了……
最近一到放假就闷在家里……
干什么?练琴……电吉他……
都2年多没玩了。所以啊。人都是逼出来的……
就剩下一把吉他了。。然后音箱都没有……
最近找了一个木工师傅。用多层板做了一个箱子。
然后打算自己DIY音箱呢。……
我本来想说,做一个最简单的音箱。不要带失真效果了。
直接只有扩音就好了…………这样能好点。
我偶像给我举了一个例子。我就决定带上失真效果了……
我偶像是这么说的:"买自行车附送健身器"。
最后说一句这段时间的座右铭………
如果有一天,你发现我疯了。那可能是你疯了
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics