Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 基于对象的读写的问题,菜鸟问题,望指教,谢谢!!
zhjdenis





发贴: 15
积分: 0
于 2007-11-01 19:03 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我感觉编写没有什么问题,可是调用这个类的时候总是抛出。实现***能是将一个存着数据的hashmap对象存入recordtxt这个文件中(我定义的时候用的是个C:\123.txt);我使用时都前生成了该类的对象,并且我也看到确实存在着这个recordtxt被生成了。这个类中一共有3个方法,但是都会抛出该异常。java.io.FileNotFoundException: C:\zhjdenis.txt (拒绝访问。)
  at java.io.FileOutputStream.open(Native Method)
  at java.io.FileOutputStream.<init>(Unknown Source)
  at java.io.FileOutputStream.<init>(Unknown Source)
  at 注册表修改界面.AboutRecord.<init>(AboutRecord.java:47)

package 注册表修改界面;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;
import java.util.Map;

public class AboutRecord {
  Map<File, String> hashmap;
  Map<File, String> map2;
  File storetxt;
  
public AboutRecord(File recordtxt){
  storetxt=recordtxt;
   try {
   if(!storetxt.exists())
  {
  storetxt.createNewFile();
  hashmap=new HashMap<File, String>();
   hashmap.put(storetxt, "locked");
  ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(storetxt));
  out.writeObject(hashmap);
  out.flush();
  out.close();
  Runtime.getRuntime().exec("attrib "+storetxt+" +h");
  }
  else {
  Runtime.getRuntime().exec("attrib "+storetxt+" +h");
  ObjectInputStream in=new ObjectInputStream(new FileInputStream(storetxt));
   try {
   map2=(HashMap)in.readObject();
   in.close();
   } catch (ClassNotFoundException e) {
e.printStackTrace();}
  map2.put(storetxt, "locked");
  ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(storetxt));
   out.writeObject(map2);
   out.flush();
   out.close();
  }
} catch (IOException e1) {
  e1.printStackTrace();}
}
//将一个新的对应关系加入到hashmap并再次写入文件  
void addnewoperationfile(String filename) {
File file=new File(filename);
try {
ObjectInputStream in=new ObjectInputStream(new FileInputStream(storetxt));
map2=(HashMap)in.readObject();
in.close();
map2.put(file, "locked");
modifyregedit.changedcontent3.append(filename);
modifyregedit.changedcontent3.append("\tlocked\n");
ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(storetxt));
out.writeObject(map2);
out.flush();
out.close();
} catch (FileNotFoundException e) {
System.out.println("zhjdenis1");//这个一般会被打印,也就是说这有抛出的异常
} catch (IOException e) {
  System.out.println("zhjdenis2");
} catch (ClassNotFoundException e) {
System.out.println("zhjdenis3");
}
  
}
//查看写入文件中的hashmap中的内容
public void showpastoperation()
{
try {
if(!storetxt.exists())
return;
ObjectInputStream in=new ObjectInputStream(new FileInputStream(storetxt));
map2=(HashMap)in.readObject();
in.close();
modifyregedit.changedcontent3.setText("");  
for(Map.Entry<File, String> entry:map2.entrySet())
{
  File key=entry.getKey();
  String value=entry.getValue();
  modifyregedit.changedcontent3.append(key.getAbsolutePath());
   modifyregedit.changedcontent3.append("\t"+value+"\n");
}
} catch (FileNotFoundException e) {
      e.printStackTrace();
} catch (IOException e) {
      e.printStackTrace();
} catch (ClassNotFoundException e) {
      e.printStackTrace();
    }
}
//将指定的数据从hashmap中删除,然后将更新后的hashmap写回文件
public void searchAndUnlock(String filename)
{
  File file=new File(filename);
  System.out.println(filename);
  try {
  ObjectInputStream in = new ObjectInputStream(new FileInputStream(storetxt));
  map2=(HashMap)in.readObject();
  in.close();
  if(map2.containsKey(file))
  {
  map2.remove(file);
  ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(storetxt));
   out.writeObject(map2);
   out.flush();
   out.close();
   Modifyattribution.UnModifyattribution(filename);
  modifyregedit.changedcontent3.append("\n已经成***解锁"+filename+"\n");
      
}
  else
  modifyregedit.changedcontent3.append("\n"+file.getAbsolutePath()+" 未被隐藏或非正确的文件名");
  } catch (FileNotFoundException e) {
    e.printStackTrace();
  } catch (IOException e) {
    e.printStackTrace();
  } catch (ClassNotFoundException e) {
    e.printStackTrace();
  }  
}
}




25了才开始学JAVA晚吗?

话题树型展开
人气 标题 作者 字数 发贴时间
8461 基于对象的读写的问题,菜鸟问题,望指教,谢谢!! zhjdenis 4382 2007-11-01 19:03
6732 Re:基于对象的读写的问题,菜鸟问题,望指教,谢谢!! zhjdenis 130 2007-11-02 11:30
6635 Re:基于对象的读写的问题,菜鸟问题,望指教,谢谢!! andy_wang_5 339 2007-11-02 16:54
6849 Re:基于对象的读写的问题,菜鸟问题,望指教,谢谢!! JiafanZhou 754 2007-11-02 22:30
6962 Re:基于对象的读写的问题,菜鸟问题,望指教,谢谢!! andy_wang_5 211 2007-11-02 17:11
6582 Re:基于对象的读写的问题,菜鸟问题,望指教,谢谢!! zhjdenis 44 2007-11-02 18:30

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923