⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file.java

📁 手机模拟器源代码,可以在网页上调用applet应用来摸拟手机,在线体验手机游戏和运用.可以在网页上自定义手机外观.
💻 JAVA
字号:
/* *  Siemens API for MicroEmulator *  Copyright (C) 2003 Markus Heberling <markus@heberling.net> * *  This library is free software; you can redistribute it and/or *  modify it under the terms of the GNU Lesser General Public *  License as published by the Free Software Foundation; either *  version 2.1 of the License, or (at your option) any later version. * *  This library is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU *  Lesser General Public License for more details. * *  You should have received a copy of the GNU Lesser General Public *  License along with this library; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */package com.siemens.mp.io;import java.io.BufferedInputStream;import java.io.InputStream;import java.util.Hashtable;import java.util.Vector;import com.barteo.emulator.device.DeviceFactory;/** * * @author  markus * @version */public class File {    static Vector files=new Vector();    static Hashtable data=new Hashtable();        public int close(int fileDescriptor) {        //System.out.println("public int close(int fileDescriptor)"+files.elementAt(fileDescriptor));        files.setElementAt(null, fileDescriptor);        return 1;    }        public static int copy(java.lang.String source, java.lang.String dest) {        System.out.println("public static int copy(java.lang.String source, java.lang.String dest)");        return 1;    }        public static int debugWrite(java.lang.String fileName, java.lang.String infoString) {        System.out.println("public static int debugWrite(java.lang.String fileName, java.lang.String infoString)");        return 1;    }        public static int delete(java.lang.String fileName) {        //System.out.println("public static int delete(java.lang.String "+fileName+") ");        data.remove(fileName);        return 1;    }        public static int exists(java.lang.String fileName) {        //System.out.println("public static int exists(java.lang.String "+fileName+") "+data.containsKey(fileName));        if (data.containsKey(fileName.intern())||        DeviceFactory.getDevice().getEmulatorContext().getClassLoader().getResourceAsStream(fileName)!=null        ) return 1; else return -1;    }        public static boolean isDirectory(java.lang.String pathName) {        System.out.println("public static boolean isDirectory(java.lang.String pathName)");        return false;    }        public int length(int fileDescriptor) {        //System.out.println("public int length(int fileDescriptor)");        return ((FileInfo)data.get(files.elementAt(fileDescriptor))).data.length;            }        public static java.lang.String[] list(java.lang.String pathName) {        System.out.println(" public static java.lang.String[] list(java.lang.String pathName)");        return null;    }        public int open(java.lang.String fileName){        //System.out.println("public int open(java.lang.String "+fileName+")");                        files.addElement(fileName.intern());        byte[] s=new byte[0];        if (!data.containsKey(fileName)) {            data.put(fileName.intern(), new FileInfo(s));            try {                InputStream is=DeviceFactory.getDevice().getEmulatorContext().getClassLoader().getResourceAsStream(fileName);                if(is!=null) {                    BufferedInputStream bis=new BufferedInputStream(is);                                        int l;                    byte[] b=new byte[1024];                    while((l=bis.read(b))!=-1) {                        byte[] t=new byte[l+s.length];                        System.arraycopy(s, 0, t, 0, s.length);                        System.arraycopy(b, 0, t, s.length, l);                        s=t;                    }                    data.put(fileName.intern(), new FileInfo(s));                }            }            catch (Exception e) {                e.printStackTrace();            }        }        return files.indexOf(fileName);    }        public int read(int fileDescriptor, byte[] buf, int offset, int numBytes) {        //System.out.println("public int read(int fileDescriptor, byte[] buf, int offset, int numBytes)"+files.elementAt(fileDescriptor));        FileInfo f=((FileInfo)data.get(files.elementAt(fileDescriptor)));                if(numBytes>(f.data.length-f.seek)) numBytes= f.data.length-f.seek;                System.arraycopy(f.data, f.seek, buf, offset, numBytes);        f.seek+=numBytes;        return numBytes;    }        public static int rename(java.lang.String source, java.lang.String dest) {        System.out.println("public static int rename(java.lang.String source, java.lang.String dest)");        return 1;    }        public int seek(int fileDescriptor, int seekpos) {        //System.out.println("public int seek(int fileDescriptor, int seekpos)");        ((FileInfo)data.get(files.elementAt(fileDescriptor))).seek=seekpos;        return 1;    }        public static int spaceAvailable() {        //System.out.println("public static int spaceAvailable()");        return 1000000;    }        public static void truncate(int fileDescriptor, int size) {        System.out.println("public static void truncate(int fileDescriptor, int size)");    }        public int write(int fileDescriptor, byte[] buf, int offset, int numBytes) {        //System.out.println("public int write(int fileDescriptor, byte[] buf, int offset, int numBytes)"+files.elementAt(fileDescriptor));        FileInfo f=((FileInfo)data.get(files.elementAt(fileDescriptor)));                if(numBytes>(f.data.length+f.seek)) {            byte[] t=new byte[f.data.length+numBytes];            System.arraycopy(f.data, 0, t, 0, f.data.length);            f.data=t;        }                System.arraycopy(buf,offset,f.data,f.seek,numBytes);        f.seek+=numBytes;                /*for (int i=0;i<f.data.length;i++)        {            System.out.print((char)f.data[i]);        }        System.out.println();*/                return 1;    }            class FileInfo {        byte[] data;        int seek;                FileInfo(byte[] data) {            this.data=data;            this.seek=0;        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -