Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

[ASK JAVA] Error Read Byte Stream via SerialPort dan Error Save

salam kenal master java...

saya punya masalah [kadang2] dalam membaca aliran data dari microcontroller dan ketika menyimpan data yang telah dibaca kedalam format *.DAT. error-nya seperti ini...

Feb 23, 2015 9:13:55 AM FrameSync.FRSync_COM serialEvent
SEVERE: null
java.io.FileNotFoundException: E:\RizkiJob\NetBeans\FrameSync\FrameSync_20150210\meta_2015_02_23_09_13_46.DAT (The requested operation cannot be performed on a file with a user-mapped section open)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
    at java.io.FileWriter.<init>(FileWriter.java:90)
    at FrameSync.FRSync_COM.SaveMetadata(FRSync_COM.java:415)
    at FrameSync.FRSync_COM.GetAllData(FRSync_COM.java:257)
    at FrameSync.FRSync_COM.serialEvent(FRSync_COM.java:245)
    at gnu.io.RXTXPort.sendEvent(RXTXPort.java:732)
    at gnu.io.RXTXPort.eventLoop(Native Method)
    at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1575



error line 415...

public void SaveMetadata () throws IOException {
        String content  = frsync_gui.txt_Data.getText();
        FileWriter fw   = new FileWriter(fileMetadata.getAbsoluteFile());
        try (BufferedWriter bw = new BufferedWriter(fw)) {
            bw.write(content);
        }      
    }


error line 257...

public String GetAllData (String sReadByte) throws IOException {
        frsync_gui.txt_Data.append(sReadByte);  
                           
        SaveMetadata();       
        return null;       
    }


error line 245...

@Override
    public void serialEvent(SerialPortEvent evt){
        if (evt.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
            try {
                while (input.available() > 0) {
                    readByte  = (byte)input.read();               
                    iReadByte = readByte & 0xFF;
                    sReadByte = Integer.toHexString(iReadByte);
                    System.out.print            (sReadByte);
                   
                    GetAllData (sReadByte);
                    //CatchData (readByte, iReadByte, sReadByte);                   
                }
            } catch (IOException ex) {
                Logger.getLogger(FRSync_COM.class.getName()).log(Level.SEVERE, null, ex);
            }       
        }
    }


komunikasi serial port, library RxTx, baud rate 115200. mohon pencerahannya. tks


Comments

  • edited February 2015
    gw kok cenderung baca pesan error yg ini yo ...

    java.io.FileNotFoundException: E:\RizkiJob\NetBeans\FrameSync\FrameSync_20150210\meta_2015_02_23_09_13_46.DAT (The requested operation cannot be performed on a file with a user-mapped section open)

    itu biasanya karena :
    [1] file mau dibuka, padahal masih di lock oleh fungsi lain (kondisi masih open, tapi mau di open lagi)
    [2] file nya sudah ditutup, tapi langsung mau dibuka lagi, jeda waktunya kagak mencukupi sampai handler / lock file beneran di release

    kemungkinan besar itu yg nomer [1]

    kejadian yg paling umum :
    file dibuka terus utk dibaca ... tapi pada saat yg sama juga mau dibuka lagi utk ditulis



    kalo gw, pake delphi, punya proses yg sama
    - file log ditulis terus menerus oleh apache
    - gw open shared pake delphi (jadi tidak saling mengunci), dibaca terus menerus dari delphi buat dimasukan ke db
  • wah, bener sekali Mas/Pak @buaya, file nya dibuat, trs ditulisi, kemudian secara bersamaan dibaca untuk di terjemahkan. kira2 punya solusi apa pak biar bisa open shared...?
  • edited February 2015
    coba jangan pake FileWriter

    tapi pake pasangan :
    http://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html
    http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html

    buat baca dan tulis
    soalnya 2 pasangan itu kalo mau mengunci file mesti pake : .getChannel().tryLock()
    artinya, kemungkinan dari awal buka file emang tidak di lock

    paling gampang, sebelum mengubah aplikasi asli, testing nya bikin aplikasi baru
    1 buat tulis terus menerus ke file
    1 buat baca hasil penulisan terus menerus juga
Sign In or Register to comment.