в чем разница между этими двумя способами записи в файл в java?

У меня есть две реализации ниже, где объект PrintStream обертывает либо объект FileOutputStream, либо объект File. Я делаю то же самое с обоими. Есть ли между ними разница, где один метод не будет применим для написания.

public class Varags {
        public static void main(String[] args) throws FileNotFoundException{

            OutputStream output = new FileOutputStream("Test.txt");
                         PrintStream p1=new PrintStream( output);
                         p1.println("trying");

            PrintStream p=new PrintStream( new File("test2.txt"));
            p.println("trying");
}
}

Есть ли другой способ записи в файл, который лучше, чем этот?

Спасибо


person brain storm    schedule 05.09.2013    source источник
comment
Полезно: stackoverflow.com/questions/5759925/   -  person Suresh Atta    schedule 05.09.2013
comment
Есть ли другой способ записи в файл, который лучше, чем этот? - Да, но это зависит от того, что вы подразумеваете под словом "лучше" и что вы пытаетесь записать. (Если вы хотите записать в файл только одну строку, лучше не имеет значения!)   -  person Stephen C    schedule 16.12.2020


Ответы (2)


Насколько я знаю разницы нет. Согласно Javadocs, версия File в любом случае создает версию OutputStreamWriter и включена только для удобства.

Во многих случаях использование Writer лучше для ввода обычного текста. Если вы работаете с необработанными байтовыми данными, вам потребуются такие потоки, как FileInputStream, FileOutputStream и т. д.

person William Gaul    schedule 05.09.2013

PrintStream предоставляет несколько удобных методов для записи текста в файл. Чтобы получить больше контроля над записью символов в файл, используйте PrintWriter.

OutputStream используется для записи байтов (чистых данных, а не только текста) в файл.

person Moritz Petersen    schedule 05.09.2013