Datentypen Floppy-Image-Dateisystem

F

FlexPortable

Gast
Kennt Java das Floppy-Image-Dateisystem?

Ich möchte mir gerne eine kleine GUI-Applikation erstellen, mit der ich Ordner und Dateien eines gewünschten Ordner als Floppy-Image abspeichern kann.

Wenn nicht weiß jemand, wie das Floppy-Images-Dateisystem aufgebaut ist? Wenn es nicht allzu sehr kompliziert und notwendige Algorithmen im Internet findbar sind bzw. es gar keine allzu schwer notwendige Algorithmen notwendig sind oder gar nicht, könnte ich mir auch vorstellen, selbst einen Byte-Formatierer zu schreiben.
 
S

Spacerat

Gast
Äehm... Floppy-Image-Dateisystem... welches? CBM1540/41, CBM1570/71, HDFFS, FFS, OFS, Atari-Dos? Es gibt so viele... verdammt viele ;) Ey... sorry, dass ich PC-Dos vergessen hab' aber des kennen doch eh' alle...

So, aber um die Frage zu beantworten; Java kann solche Dateien natürlich lesen, aber es kann von Haus nichts damit anfangen. Wenn man weis um was für ein Image es sich handelt, ist es ein einfaches, in Java einen Reader dafür zu schreiben.
 
Zuletzt bearbeitet von einem Moderator:
F

FlexPortable

Gast
Also laut einem Linux-Artikel meine ich MS-DOS formatiertes mit FAT12, dass in Linux als msdos Typ verwendet wird.
Nur weiß ich echt nicht wie diese Formatierung aussieht. Hat die auch ein Index, oder werden da die Dateien einfach Bit für Bit, in die neue Datei (Imagedatei), aneinander gehängt kopiert? Wie ist der Code (Bits) für eine Trennung (zwischen Ende der vorangegangen Datei und Anfang der folgenden Datei)? Wie werden die Ordner abgespeichert (die ja gewissermaßen den Ort der einzelnen Dateien regelt)? Mittels Index?

Oder gibt es da schon eine Methode in Java?
 
S

Spacerat

Gast
Nö... eine Methode gibt es dafür sicher nicht. Das Problem ist, dass man sich erst mal mit dem von der Hardware vorgegebenen Strukturen (Köpfe, Spuren, Sektoren und Anzahl der Bytes pro Sektor) auseinander setzen muss und dann erst mit dem eigentlichen Dateisystem. Für ein PC-HD-Laufwerk ergeben sich daraus schon mal die Werte 2, 80, 18 und 512 -> 1,44Mb. Mit diesen Daten ist es nun schon mal ein Leichtes, so ein PC-HD-Image blockweise zu indizieren. Wenn man nun noch weis, wie die Daten dann z.B. bei Fat12 darauf organisiert sind, ist der Reader dafür schon so gut wie fertig. Wenn man nun noch Hardware vom Dateisystem im Sinne der OOP für Wiederverwendbarkeit trennt, schreibt sich ein weiterer Reader für z.B. Minix noch um einiges leichter.
 
Zuletzt bearbeitet von einem Moderator:
F

FlexPortable

Gast
Also dann kennt Java doch nicht dieser Art der Formatierung? Ich betone das es sich um Imageerstellung handelt, also eine Datei und nicht das ansprechen von Hardware, außer vielleicht das Lesen und Schreiben um die Datei dann zu erstellen, aber dabei greift man ja nur auf Funktionen zurück die schon in Java definiert sind.

Mehr oder Weniger hängt es also vom Programm ab, dass mittels der Image-Datei die Daten auf eine reale Floppy schreibt, wie das Image auszusehen hat (formatlich, nicht inhaltlich). Es gibt aber wohl schon lange ein inoffizielles Standart wie so ein Floppy-Image auszusehen hat.

Bei Linux gibt man den Befehl 'dd if=/dev/zero of=1_Floppy1440.img bs=1024 count=1440' um ein Floppy-Image anzulegen, was für eine 1,44MB große Floppy sein soll. Und damit es dann FAT12 formatiert ist, gibt man zusätzlich den Befehel 'mkdosfs -F 12 1_Floppy1440.img'.
An sich sind die Parameter leicht zu interpretieren wo bei ich gerade nicht weiß ob es 1440 x 0 oder 1440 x 255 sind.
http://www.jay-code.de/files/fat12.pdf

Wenn ich mich nicht täusche, dürfte also eigentlich FAT12 die einzige zu beachtende Regel sein und in diese Formatierung nach den FAT12 Vorgaben fügt man dann die Ordner und Dateien ein.
 
S

Spacerat

Gast
Also dann kennt Java doch nicht dieser Art der Formatierung? Ich betone das es sich um Imageerstellung handelt, also eine Datei und nicht das ansprechen von Hardware, außer vielleicht das Lesen und Schreiben um die Datei dann zu erstellen, aber dabei greift man ja nur auf Funktionen zurück die schon in Java definiert sind.
Also das es nicht direkt um das Ansprechen der Hardware geht, war schon von vorne herein klar. Aber wie könnte so ein Image denn sinnvoller aufgebaut sein, wenn es kein Abbild dieser Kunststoffscheibe (Hardware) liefert. Sinnvoll wäre doch eine Einteilung in ein 4-Dimensionales Bytearray:
Java:
public abstract class HDDiskImage
{
  public static final int HEADS = 2;
  public static final int TRACKS = 80;
  public static final int SECTORS = 18;
  public static final int BYTES_PER_SECTOR = 512;
  public static final int IMAGESIZE = HEADS*TRACKS*SECTORS*BYTES_PER_TRACK;

  private final byte[][][][] data = new byte[TRACKS][SECTORS][HEADS][BYTES_PER_TRACK];

  protected HDDiskImage(File image)
  throws IOException
  {
    if(image.length() != IMAGESIZE) {
      throw new IOException("invalid image size");
    }
    FileInputStream fis = new FileInputStream(image);
    for(int t = 0; t < TRACKS; t++) {
      for(int s = 0; s < SECTORS; s++) {
        for(int h = 0; h < HEADS; h++) {
          fis.read(data[t][s][h]);
        }
      }
    }
  }

  // Code zum interpretieren des Images.

  /**
   * z.B. readSector()
  **/
  public final byte[] readSector(int track, int sector, int head)
  {
    // Abfragen zur Konsistenz der Parameter fielen der Faulheit zum Opfer ;)
    return data[track][sector][head].clone();
  }

  // Abstrakte Methoden für verschiedene Dateisysteme

  /**
   * z.B. dir
  **/
  public abstract List<String> dir();
}
So viel erst mal zur Vorgehensweise bei der Interpretation der Images. Das Dateisystem ist Sache einer konkreten Klasse. Der Code oben ist jetzt aber nur relativ dahingepfuscht, um zu zeigen, wie es geht. Eleganter als ein 4-Dimensionales Array bleibt natürlich ein (Direct)ByteBuffer unt die Positionierung auf einen Sektor findet dann über eine aus Track, Sector und Head errechnete Adresse statt.
Wenn man will, kann man die Anzahl der Köpfe auch weglassen, wie in Linux z.B. und die Sectorgrösse auf 1024 Bytes vergrössern. Allerdings müsste man dann nur noch mit einem Offset (512) an die Daten des 2. Kopfes.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M RS232 Schnittstelle ansteuern (Floppy durch Laptop ersetzen) Allgemeine Java-Themen 2
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
Mozart53 JLabel nur meinen Text verschieben ohne Image Allgemeine Java-Themen 3
Y Wie bekomme ich durch getImage an das Image heran? Allgemeine Java-Themen 1
J jsch direktes streamen in ein image Allgemeine Java-Themen 11
A 2D-Grafik Einfachster Ansatz, um sich wiederholende Figur in einem 2D-Image zu erkennen Allgemeine Java-Themen 1
T 2D-Grafik Chart als Image erstellen Allgemeine Java-Themen 3
G Image in Shape wandeln Allgemeine Java-Themen 1
T Swing Image rotieren Allgemeine Java-Themen 1
I nach Image Load in ListView, kann Ordner nicht mehr gelöscht werden Allgemeine Java-Themen 1
C pfad vom Image ausgeben lassen Allgemeine Java-Themen 5
Bananabert Swing jtree : image als user object Allgemeine Java-Themen 2
M Image auslesen Allgemeine Java-Themen 2
G Pixelanzahl aus Raw Image Datei Allgemeine Java-Themen 1
H OCR und Image Processing Allgemeine Java-Themen 4
M Image für PDF nicht verfügbar - Runnable .jar Allgemeine Java-Themen 3
S BLOB Image in JSP anzeigen Allgemeine Java-Themen 5
BRoll Image RGB Werte auslesen und vergleichen Allgemeine Java-Themen 8
K Image zu BufferedImage konvertieren Allgemeine Java-Themen 9
K Image beim catchen ist immer null Allgemeine Java-Themen 9
X Image Processing libary für JavaSE und Android Allgemeine Java-Themen 2
Crashbreaker RCP-View Image öffnen und darstellen Allgemeine Java-Themen 7
S IMAGE ARRAY laden Allgemeine Java-Themen 6
B Image oder GridControl? Allgemeine Java-Themen 8
B Image Thinning Allgemeine Java-Themen 3
A Input/Output Buffered Image zu Byte Array und zurück konvertieren Allgemeine Java-Themen 4
F Image - Ausschnitt bekommen Allgemeine Java-Themen 3
J Teil eines Image/ImageIcon zeichnen Allgemeine Java-Themen 2
N Unable to convolve src image Allgemeine Java-Themen 7
H image in jtextarea/JLabel einbinden... Allgemeine Java-Themen 4
Aigu Bilderkennung / Image Analysis Allgemeine Java-Themen 2
M Nochmal I-Frame zu Image Allgemeine Java-Themen 4
M JPEG Image komprimieren Allgemeine Java-Themen 2
M Probleme mit Image Extraction aus PDF Allgemeine Java-Themen 2
V Image laden - URL über ClassLoader ermitteln Allgemeine Java-Themen 2
G sun.awt.image.OffScreenImage Serializable machen Allgemeine Java-Themen 5
T Image in gif umwandeln Allgemeine Java-Themen 14
G itext größe von image Allgemeine Java-Themen 2
T JPanel to Image? Allgemeine Java-Themen 6
K Image Resizer Allgemeine Java-Themen 4
D Image runterscalieren, aber schlechte Quali? Allgemeine Java-Themen 3
L Buffered Image teilweise zeichnen Allgemeine Java-Themen 6
P Image erzeugen Allgemeine Java-Themen 7
B Image libraries Allgemeine Java-Themen 3
MQue Image über Komponente Allgemeine Java-Themen 3
P Image auf JPanel auf JFrame Allgemeine Java-Themen 3
P Image auf einem Panel mit null-Layout Allgemeine Java-Themen 8
E Image unterscheiden Allgemeine Java-Themen 16
E Image auf einem JLabel darstellen Allgemeine Java-Themen 3
F BufferedImage -> Image Allgemeine Java-Themen 4
E Wie bekomme ich mein Image in das Fenster Allgemeine Java-Themen 2
T Muster/Zeichen/Texterkennung auf einem Image Allgemeine Java-Themen 9
L Linien, Recktecke und Elipsen zeichnen ohne Image Allgemeine Java-Themen 2
T Disk Image Library (iso,mdf,nrg,bin) Allgemeine Java-Themen 6
S KeyListener! Image Problem! Allgemeine Java-Themen 2
S Image als Background Allgemeine Java-Themen 5
B Image(png) versenden Allgemeine Java-Themen 3
N Image -> cropImage Allgemeine Java-Themen 3
T Image mithilfe von DirectColorModel und Pixel erstellen Allgemeine Java-Themen 3
G Image in der Größe ändern Allgemeine Java-Themen 2
C probleme mit image Allgemeine Java-Themen 4
C Pixelfarbe aus einem image auslesen Allgemeine Java-Themen 6
M Image Skalieren Allgemeine Java-Themen 23
D ByteArray für Image-Icon laden. Allgemeine Java-Themen 4
T iso datei (Image) mit Java einlesen und Inhalt entpacken Allgemeine Java-Themen 3
O Image mit transparenten farben wie bei *.GIF ? Allgemeine Java-Themen 3
B Image#getScaledInstance & Graphics2D#drawImage ClassCast Allgemeine Java-Themen 3
H Speicher freigeben klappt nicht bei Image Objekten, warum? Allgemeine Java-Themen 8
H Skalieren von Image -> java.lang.OutOfMemoryError - WARUM Allgemeine Java-Themen 18
T Auf ein Image geklickt Allgemeine Java-Themen 13
J ISO image erzeugen Allgemeine Java-Themen 3
J Wie mache ich den Hintergrund einer Image durchsichtig? Allgemeine Java-Themen 7
G Aus JPanel Image Hohlen Allgemeine Java-Themen 3
D BufferedReader in image umwandeln Allgemeine Java-Themen 3
S Image Datei serializieren Allgemeine Java-Themen 3
G JFrame nimmt mein Image nicht Allgemeine Java-Themen 2
F Image als GIF oder JPEG abspeichern Allgemeine Java-Themen 2
S Textdatei statt von Dateisystem aus .jar lesen Allgemeine Java-Themen 3
J Programm zum Suchen eines Wortes im Dateisystem Allgemeine Java-Themen 4
J PDF-Datei aus JAR-Archiv in Dateisystem kopieren Allgemeine Java-Themen 1
Balbes Auf Datei im Dateisystem aus einem jar-Archiv zugreifen Allgemeine Java-Themen 4
S Vorsicht beim Dateisystem NTFS Allgemeine Java-Themen 6
S Dateisystem unter Java simulieren Allgemeine Java-Themen 17

Ähnliche Java Themen

Neue Themen


Oben