Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Klik link berikut untuk informasi 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

Baca 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.