How to save & delete a Bitmap image in Blackberry Storm?

我只是一个虾纸丫 提交于 2019-12-08 05:30:03

问题


I have a ready Bitmap image. Now I want to save & delete it. I m doing it like..

FileConnection fconn = (FileConnection)Connector.open("file:///store/home/user/StoredBitmap/"+picIndex+".bmp",Connector.READ_WRITE);

        if(!fconn.exists())
            fconn.create();

        OutputStream out = fconn.openOutputStream();

       if(image == null)
            System.out.println("    image null  ");
       else
       {
            out.write(byte[]);
            out.close();
       }

        fconn.close();

For Blackberry Storm device & simulator, which path to give instead of

"file:///store/home/user/StoredBitmap/"+picIndex+".bmp"

I have a created Bitmap. In outputStream, how to write it?

I m using Blackberry 4.7 (Version: 4.7.0.41). In its simulator, how to save the Bitmap? I m doing it for Blackberry Storm.

& for deleting that Bitmap, can we use File class or we've to use FileConnection class?


回答1:


Take a look at this (write/read/delete)

class Scr extends MainScreen implements FieldChangeListener {
    ButtonField mWrite;
    ButtonField mRead;
    ButtonField mDelete;

    String mFileName = System.getProperty("fileconn.dir.photos") 
            + "test.bmp";

    public Scr() {
        mWrite = new ButtonField("Write file", 
                    ButtonField.CONSUME_CLICK);
        add(mWrite);
        mWrite.setChangeListener(this);

        mRead = new ButtonField("Read file", 
                    ButtonField.CONSUME_CLICK);
        add(mRead);
        mRead.setChangeListener(this);

        mDelete = new ButtonField("Delete file", 
                    ButtonField.CONSUME_CLICK);
        add(mDelete);
        mDelete.setChangeListener(this);
    }

    public void fieldChanged(Field field, int context) {
        if (mWrite == field) {
            byte[] bytes = new byte[] { 1, 2, 1, 1 };
            writeFile(bytes, mFileName);
            Dialog.inform("File " + mFileName + " saved");
        } else if (mRead == field) {
            byte[] bytes = readFile(mFileName);
            if (null != bytes)
                Dialog.inform("File " + mFileName + " opened");
        } else if (mDelete == field) {
            deleteFile(mFileName);
            Dialog.inform("File " + mFileName + " deleted");
        }

    }

    private void writeFile(byte[] data, String fileName) {
        FileConnection fconn = null;
        try {
            fconn = (FileConnection) Connector.open(fileName,
                    Connector.READ_WRITE);
        } catch (IOException e) {
            System.out.print("Error opening file");
        }

        if (fconn.exists())
            try {
                fconn.delete();
            } catch (IOException e) {
                System.out.print("Error deleting file");
            }
        try {
            fconn.create();
        } catch (IOException e) {
            System.out.print("Error creating file");
        }
        OutputStream out = null;
        try {
            out = fconn.openOutputStream();
        } catch (IOException e) {
            System.out.print("Error opening output stream");
        }

        try {
            out.write(data);
        } catch (IOException e) {
            System.out.print("Error writing to output stream");
        }

        try {
            fconn.close();
        } catch (IOException e) {
            System.out.print("Error closing file");
        }
    }

    private byte[] readFile(String fileName) {
        byte[] result = null;
        FileConnection fconn = null;
        try {
            fconn = (FileConnection) Connector.open(fileName, 
                            Connector.READ);
        } catch (IOException e) {
            System.out.print("Error opening file");
        }

        if (!fconn.exists()) {
            Dialog.inform("file not exist");
        } else {

            InputStream in = null;
            ByteVector bytes = new ByteVector();
            try {
                in = fconn.openInputStream();
            } catch (IOException e) {
                System.out.print("Error opening input stream");
            }

            try {
                int c = in.read();
                while (-1 != c) {
                    bytes.addElement((byte) c);
                    c = in.read();
                }
                result = bytes.getArray();
            } catch (IOException e) {
                System.out.print("Error reading input stream");
            }

            try {
                fconn.close();
            } catch (IOException e) {
                System.out.print("Error closing file");
            }
        }
        return result;
    }

    private void deleteFile(String fileName) {
        FileConnection fconn = null;
        try {
            fconn = (FileConnection) Connector.open(fileName,
                    Connector.READ_WRITE);
        } catch (IOException e) {
            System.out.print("Error opening file");
        }

        if (!fconn.exists()) {
            Dialog.inform("file not exist");
        } else {
            try {
                fconn.delete();
            } catch (IOException e1) {
                System.out.print("Error deleting file");
            }

            try {
                fconn.close();
            } catch (IOException e) {
                System.out.print("Error closing file connection");
            }
        }
    }


来源:https://stackoverflow.com/questions/1351273/how-to-save-delete-a-bitmap-image-in-blackberry-storm

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!