String a = new String("foo");
String b = new String("foo");
System.out.println(a == b); // prints false
System.out.println(a.equals(b)); // prints true
Убедитесь, что вы понимаете, почему. Это потому, что сравнение ==
сравнивает только ссылки; equals()
метод сопоставляет содержимое по символу.
Когда вы вызываете new для a
и b
, каждый получает новую ссылку, указывающую на "foo"
в таблице строк. Ссылки разные, но контент один и тот же.
Нет, вы передаете содержимое изображения, чтобы создать новый файл с содержимым в виде необработанного пути, это не может работать.
new File.fromRawPath
выполняет, в соответствии с документами :
Создает объект File из необработанного пути, то есть последовательность байтов, как представлено ОС.
blockquote>Что вы хотите сделать, это создать файл и сохранить содержимое в этом файле, это можно сделать так ( Источник ):
var imageFile = File('myimage.jpg'); var sink = imageFile.openWrite(); sink.write(bytes); await sink.flush(); await sink.close();