[ABAP] Anhand eines logischen Dateinamens einen physischen Dateinamen vergeben

* https://www.consolut.com/s/sap-ides-zugriff/d/e/doc/E-FILE_GET_NAME/

* SF01 (Dateinamen mandantenabhängig)
* SF07 (Dateinamenanalyse)
* FILE (Dateinamen/pfade mandantenunabhängig)

* logischer Dateipfad und Dateiname, definiert in Transaktion FILE
DATA: lv_logical_filename TYPE filename-fileintern VALUE 'Z_MY_LOGIC_FILE_DEF'.
* Zusammengesetzter Dateiname aus lv_logical_filename und Parametern (Verwendung der Parameter siehe Transaktion FILE)
DATA: lv_file_name TYPE rlgrap-filename.
DATA: lv_file_format TYPE filename-fileformat.

* Anhand eines logischen Dateinamens den physischen Dateinamen vergeben
CALL FUNCTION 'FILE_GET_NAME'
  EXPORTING
    logical_filename = lv_logical_filename
    parameter_1      = sy-sysid
    parameter_2      = 'outputfilename.txt'
  IMPORTING
    file_name        = lv_file_name
    file_format      = lv_file_format
  exceptions
    file_not_found   = 1
    OTHERS           = 2.

IF sy-subrc = 0.
  WRITE: / lv_file_name.
  WRITE: / lv_file_format.
ENDIF.

[MS Access] Binärdaten aus einer Datei lesen

' https://stackoverflow.com/questions/660312/how-can-i-read-a-binary-file-using-vba
Sub BtnReadBinaryClick()
    ' Dateipfad + Dateiname
    Dim sFile As String
    sFile = "c:\\temp\\test.bin"
   
    ' Array für Binärdaten
    Dim byaFileData() As Byte
   
    ' Dateizeiger
    Dim fd As Integer
    ' nächsten freien Dateizeiger holen
    fd = FreeFile

    ' Datei zum binären Lesen öffnen
    Open sFile For Binary Access Read As #fd
    ' Array an Dateigröße anpassen
    ReDim byaFileData(0 To LOF(fd) - 1)
    ' Datei in Array einlesen
    Get #fd, , byaFileData
   
    ' hier byaFileData bearbeiten
    ...
   
    ' Datei schließen
    Close #fd
End Sub

[Java] Bytedaten einlesen und konvertieren (Little Endian / Big Endian)

import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;

public boolean LoadBinaryData(String filename) throws IOException
{
    boolean bRetVal = false;

    FileInputStream fis = null;
    DataInputStream dis = null;
    
    try
    {
        File f = new File(filename);
              
        if (f.isFile() && f.canRead())
        {
            fis = new FileInputStream(filename);
            dis = new DataInputStream(fis);
            
            // Bsp.: 8 Bytes als Double lesen
            byte[] Test1 = new byte[8];
            dis.read(Test1);
            
            double a = ByteBuffer.wrap(Test1).order(ByteOrder.LITTLE_ENDIAN).getDouble();

            System.out.println(a);

            // Bsp.: 4 Bytes als Float lesen
            byte[] Test2 = new byte[4];
            dis.read(Test2);
            
            float b = ByteBuffer.wrap(Test2).order(ByteOrder.LITTLE_ENDIAN).getFloat();

            System.out.println(b);

            // Bsp.: 2 Bytes als Short lesen
            byte[] Test3 = new byte[2];
            dis.read(Test3);
            
            short c = ByteBuffer.wrap(Test3).order(ByteOrder.LITTLE_ENDIAN).getShort();

            System.out.println(c);
            
            bRetVal = true;
        }
    }
    catch (Exception e)
    {
         e.printStackTrace();
    }
    finally
    {
         if (fis != null) fis.close();
         if (dis != null) fos.close();
    }
    
    return bRetVal;
}

[Java] Binärdaten aus einer Datei lesen

Bitte beachten: bei Binärformaten kann es vorkommen, dass die Bytereihenfolge der Datentypen vertauscht ist. Siehe auch: Bytedaten einlesen und konvertieren (Little Endian / Big Endian).

import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public boolean LoadBinaryData(String filename) throws IOException
{
    boolean bRetVal = false;

    FileInputStream fis = null;
    DataInputStream dis = null;
    
    try
    {
        File f = new File(filename);
              
        if (f.isFile() && f.canRead())
        {
            fis = new FileInputStream(filename);
            dis = new DataInputStream(fis);
            
            // Bsp.: 8 Bytes lesen
            byte[] Test1 = new byte[8];
            dis.read(Test1);
            
            // Bsp.: 1 Byte lesen
            byte Test2 = dis.readByte();
            
            // Bsp.: n float lesen
            while (dis.available() > 0)
            {
                float Test3 = dis.readFloat();

                System.out.println(Test3);
            }
            
            bRetVal = true;
        }
    }
    catch (Exception e)
    {
         e.printStackTrace();
    }
    finally
    {
         if (fis != null) fis.close();
         if (dis != null) fos.close();
    }
    
    return bRetVal;
}