Was ist der Unterschied zwischen Java.Net.Uri und Android.Net.Uri

Lesezeit: 2 Minuten

Benutzeravatar von Benutzer1
Benutzer1

Ich versuche, eine zu bekommen Uri von einem file Objekt so:

File file = new File("/sdcard/MyFolder/MyFile.txt");
var androidUri = Android.Net.Uri.FromFile(file).ToString();
var javaUri = file.ToURI().ToString();

dies gibt die folgenden Werte zurück:

androidUri = "file:///sdcard/MyFolder/MyFile.txt"
javaUri = "file:/sdcard/MyFolder/MyFile.txt"

also meine frage ist was der unterschied zw Java.Net.Uri Und Android.Net.Uri Sollen diese beiden Werte unterschiedlich sein? Wann sollten sie verwendet werden?

Aktualisieren

Ich habe die beiden Dokumentationsseiten gefunden Java.Net.Uri Und Android.Net.Uri und beide sagen:

Erstellt und analysiert URI-Referenzen, die konform sind RFC 2396.

Daher ist dies sicherlich ein Fehler und sie sollten dieselbe Zeichenfolge zurückgeben?

  • für Android developer.android.com/reference/android/net/Uri.html

    – IntelliJ Amiya

    22. Juli 2015 um 10:47 Uhr

  • ähnliche Frage und Antwort hier: stackoverflow.com/questions/12649530/…

    – Mayo

    22. Juli 2015 um 10:48 Uhr

  • @mayyo Ich verstehe nicht, wie diese Frage zusammenhängt? Es geht um die Konvertierung zwischen den beiden, nicht darum, was der Unterschied ist / wann sie verwendet werden sollten

    – Benutzer1

    22. Juli 2015 um 10:50 Uhr

Benutzeravatar von Cheesebaron
Käsebaron

Der Unterschied ist das Android.Net.Uri ist Googles eigene Implementierung von RFC 2396.

Android.Net.Uri ist unveränderlich, daher ist es Thread-sicher. Ihre Umsetzung ist auch gem Kommentare in der Quelle, verzeihender. Also, während Java.Net.Uri würde ein werfen Exception Wenn Sie versuchen, einen Müll-Uri zu verwenden, würde die Android-Implementierung Ihnen nur einen Uri mit diesem Müll zurückgeben.

Soweit ich sagen kann, Android.Net.Uri wird nur NullPointerException und scheinbar keine anderen Ausnahmen auslösen. Während Java.Net.Uri Die Implementierung löst andere Ausnahmen aus, z URISyntaxException Und IllegalArgumentException

Ansonsten scheinen sie sich sehr ähnlich zu sein.

Den Uri bekommst du file:/sdcard/MyFolder/MyFile.txt gültig ist, und wenn es durchgeworfen wird java.net.URI Ich bekomme folgendes:

java> String uri = "file:/sdcard/MyFolder/MyFile.txt";
java> import java.net.*
java> URI urr = new URI(uri);
java.net.URI urr = file:/sdcard/MyFolder/MyFile.txt
java> urr.getScheme();
java.lang.String res2 = "file"
java> urr.getPath();
java.lang.String res3 = "/sdcard/MyFolder/MyFile.txt"

Hier ist ein praktischer Unterschied:

java.net.uri unterstützt IPv4- und IPv6-Adressen, während android.net.uri unterstützt nur IPv4.

1442970cookie-checkWas ist der Unterschied zwischen Java.Net.Uri und Android.Net.Uri

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy