有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将什么作为上下文参数传递到文件I/O方法中?

我觉得自己很愚蠢,不知何故,我有一种感觉,我应该把“这个”作为“上下文”的论点,但老实说,整个概念对我来说都是新的,就像它对我一样困惑,在我开始无休止地寻找语法错误之前,我宁愿100%地知道什么和为什么

几天前我问了一个问题,关于如何使用文件输入/输出流将类对象的ArrayList的内容写入应用程序启动时要检索的文件。基本上,我想保存输入的值。在我意识到调用save和retrieval方法时必须传递上下文之前,我对自己的代码非常有信心。那时候我才意识到我不知道当时的环境是怎样的。。。所以是的

以下是我的方法: 创建文件(我想是吧?):

private static void updatePickThreeList(Context mC){
     FileOutputStream stream = null;

     try{
         stream=mC.openFileOutput(PICK_THREE_NUMBERS,Context.MODE_PRIVATE);
         ObjectOutputStream dout = new ObjectOutputStream(stream);
         dout.writeObject(pickThreeNumbers);
         stream.getFD().sync();
         stream.close();
         dout.flush();

     }catch(IOException e){
         e.printStackTrace();
     }
 }

检索数据(我希望):

              private static void getPickThreeList(Context mC){
     FileInputStream stream = null;
     try{
         stream=mC.openFileInput(PICK_THREE_NUMBERS);
         ObjectInputStream din  = new ObjectInputStream(stream);
         pickThreeNumbers = (ArrayList<PickThreeNumbers>) din.readObject();
         stream.getFD().sync();
         stream.close();
         din.close();

     }catch(IOException e){
         e.printStackTrace();
     }catch(ClassNotFoundException e1){
         e1.printStackTrace();
     }
 }

我假设我可以调用第一个方法将ArrayList保存到文件中,然后调用第二个方法将保存的值加载到数组中。顺便说一下,使用的数组和其他值是:

static List<PickThreeNumbers> pickThreeNumbers = new ArrayList();
final static String PICK_THREE_NUMBERS="pick_three_numbers";

因此,根据对我最初问题的回答,这两种方法都需要在上下文中传递,Java对获取该上下文非常坚决(见图),所以当我调用UpdateEpickThreElist(上下文);,究竟什么是“语境”

提前感谢-我是一个非常欣赏编程的noob


共 (1) 个答案

  1. # 1 楼答案

    so when I call updatePickThreeList(Context);, what exactly goes in as the "Context"?

    扩展Context的某个类的实例。根据调用此代码的位置,可能是ActivityService

    顺便说一句,使用静态数据成员时请小心,以免造成内存泄漏

    此外,请在后台线程上执行磁盘I/O(例如AsyncTaskIntentService