2016-05-10 4 views
5

In Java, wenn wir eine Datei erstellen, erstellen wir Dateien mit dem Namen der Erweiterung. Zum Beispiel:Welcher Dateityp wird erstellt, wenn wir eine neue Datei ohne die Erweiterung erstellen?

File file = new File("D:/light.txt"); 

Ich möchte wissen, welche Art von Dateiformat zu tun bekommen wir, wenn wir eine Datei ohne die Dateierweiterung Typ erstellen. Zum Beispiel:

File file = new File("D:/light"); 
+2

Eine Datei ohne Erweiterung. – Psytho

+0

Der Typ einer Datei richtet sich nach ihrem Inhalt, nicht nach ihrem Namen oder ihrer Erweiterung. – Kayaman

+0

Ich stimme für das Schließen dieser Frage als Off-Topic ab, da es nicht mit der Programmierung zu tun hat. – Kayaman

Antwort

4

Diese Antwort geht davon aus, dass Sie mehr tun, als nur ein File Objekt zu erstellen - dass Sie tatsächlich eine Datei im Dateisystem erstellen. (Ein Objekt File ist nur eine logische Darstellung eines Dateisystemeintrags, der vorhanden sein kann oder nicht.) Wenn Sie wirklich nur ein File Objekt erstellen, lesen Sie die Antwort von EJP - an diesem Punkt haben Sie im Grunde nur habe einen Namen bekommen. Das hat keinen "Typ" oder ein "Format".

Die Erweiterung ist nur ein Teil des Namens. Das Betriebssystem kann versuchen, das zu verwenden, um ein anderes Symbol anzuzeigen, oder eine bestimmte Anwendung zu starten, wenn Sie auf das Symbol oder was auch immer doppelklicken - aber es ist wirklich nur ein Teil des Namens.

Im Grunde eine Datei besteht aus:

  • Der Name, den Sie angeben, wenn Sie es
  • Die Bytes erstellen Sie in es schreiben
  • Metadaten wie Zutrittskontrolle

Es sei denn, Sie absichtlich hinzufügen Metadaten, es ist in der Regel nur vererbt (Standard-Berechtigungen usw.).

Sie können beliebige Daten in jede Datei schreiben - nur weil eine Datei eine Erweiterung von .txt hat, heißt das nicht, dass es definitiv eine Textdatei ist. Es könnte Inhalt haben, der ist tatsächlich MP3-codierte Audiodaten, zum Beispiel. Ob das Betriebssystem die Dateierweiterung oder den Inhalt verwendet, um herauszufinden, was mit der Datei zu tun ist, hängt vom Betriebssystem ab.

+0

Bedeutet es, dass, wenn wir eine .txt-Datei erstellen und eine Bitmap-Information darin schreiben, es die Bilddatei ist, obwohl die Erweiterung angibt, dass es sich um einen Text handelt? –

+1

@ChitKhine: Ja genau. Probieren Sie es selbst aus - benennen Sie eine Bilddatei in 'foo.txt' um und öffnen Sie sie im Editor ... Sie sehen den Müll, der wirklich die Bilddaten ist. –

+0

Okay. Versucht, es ist genau wie du sagst. Es öffnet sich jedoch, wenn ich es mit einer Farbe öffne, auch wenn es eine TXT-Datei ist. –

2

Welche Art von Datei erstellt wird, wenn wir neue Datei ohne die Erweiterung schaffen?

Es wird überhaupt keine Datei erstellt, und es gibt nur einen Typ von File.

In Java, wenn wir eine Datei erstellen, erstellen wir Dateien mit dem Namen der Erweiterung.

Oder nicht.

Zum Beispiel: File file = new File("D:/light.txt");

Ich mag würde wissen, welche Art von Dateiformat tun wir, wenn wir eine Datei ohne die Dateierweiterung Typen erstellen.

Sie nicht. Sie erhalten überhaupt kein Dateiformat, weil Sie keine Datei erhalten: nur ein File Objekt im Speicher.

Zum Beispiel: File file = new File("D:/light");

Sie alle Beispiele produzieren können Sie wollen, aber keine Datei erstellt wird, und kein Dateiformat.

In jedem Fall kümmert sich Java nicht um Dateinamenserweiterungen. Dein Betriebssystem könnte das, aber das ist eine andere Geschichte.

+0

Bedeutet es, wenn ich etwas Text in die Datei schreibe, ohne die Erweiterung einzugeben, wird es eine Textdatei sein? –