Как мне создать файл и записать в него на Java?

Пожалуйста, используйте это, я думаю, что гораздо лучшие решения. Android Studio предоставляет значение по умолчанию animation.

fragmentTransaction.setCustomAnimations (android.R.anim.slide_in_left, android.R.anim.slide_out_right) ;

blockquote>
            FragmentManager fragmentManager = getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
            fragmentManager.addOnBackStackChangedListener(this);
            fragmentTransaction.replace(R.id.frame, firstFragment, "h");
            fragmentTransaction.addToBackStack("h");
            fragmentTransaction.commit();

Выход:

1291
задан Wolf 14 February 2017 в 15:39
поделиться

5 ответов

Обратите внимание, что каждый из приведенных ниже примеров кода может выбросить IOException. Блоки try/catch/finally были опущены для краткости. Информацию об обработке исключений см. в этом руководстве.

Обратите внимание, что каждый из приведенных ниже примеров кода перезапишет файл, если он уже существует

Создание текстового файла:

PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
writer.println("The first line");
writer.println("The second line");
writer.close();

Создание бинарного файла:

byte data[] = ...
FileOutputStream out = new FileOutputStream("the-file-name");
out.write(data);
out.close();

Пользователи Java 7+ могут использовать класс Files для записи в файлы:

Создание текстового файла:

List<String> lines = Arrays.asList("The first line", "The second line");
Path file = Paths.get("the-file-name.txt");
Files.write(file, lines, StandardCharsets.UTF_8);
//Files.write(file, lines, StandardCharsets.UTF_8, StandardOpenOption.APPEND);

Создание бинарного файла:

byte data[] = ...
Path file = Paths.get("the-file-name");
Files.write(file, data);
//Files.write(file, data, StandardOpenOption.APPEND);
1688
ответ дан 19 December 2019 в 20:15
поделиться

В Java 7 и выше:

try (Writer writer = new BufferedWriter(new OutputStreamWriter(
              new FileOutputStream("filename.txt"), "utf-8"))) {
   writer.write("something");
}

Для этого есть полезные утилиты:

Обратите внимание также, что вы можете использовать FileWriter , но он использует кодировку по умолчанию, что часто является плохой идеей - лучше всего явно укажите кодировку.

Ниже приведен исходный ответ, предшествующий Java 7


Writer writer = null;

try {
    writer = new BufferedWriter(new OutputStreamWriter(
          new FileOutputStream("filename.txt"), "utf-8"));
    writer.write("Something");
} catch (IOException ex) {
    // Report
} finally {
   try {writer.close();} catch (Exception ex) {/*ignore*/}
}

См. Также: Чтение, запись и создание файлов (включая NIO2).

405
ответ дан 19 December 2019 в 20:15
поделиться

Если вы по какой-то причине хотите разделить процесс создания и записи, Java-эквивалент touch -

try {
   //create a file named "testfile.txt" in the current working directory
   File myFile = new File("testfile.txt");
   if ( myFile.createNewFile() ) {
      System.out.println("Success!");
   } else {
      System.out.println("Failure!");
   }
} catch ( IOException ioe ) { ioe.printStackTrace(); }

createNewFile () выполняет проверку существования и файл создается атомарно. Это может быть полезно, например, если вы хотите убедиться, что вы являетесь создателем файла, прежде чем писать в него.

10
ответ дан 19 December 2019 в 20:15
поделиться

Если вы хотите получить относительно безболезненный опыт, вы также можете взглянуть на пакет ввода-вывода Apache Commons , а точнее на FileUtils класс .

Никогда не забывайте проверять сторонние библиотеки. Joda-Time для манипулирования датами, Apache Commons Lang StringUtils для общих строковых операций и может сделать ваш код более читабельным.

Java - отличный язык, но стандартная библиотека иногда бывает немного низкоуровневой. Мощный, но тем не менее низкоуровневый.

15
ответ дан 19 December 2019 в 20:15
поделиться
public class Program {
    public static void main(String[] args) {
        String text = "Hello world";
        BufferedWriter output = null;
        try {
            File file = new File("example.txt");
            output = new BufferedWriter(new FileWriter(file));
            output.write(text);
        } catch ( IOException e ) {
            e.printStackTrace();
        } finally {
          if ( output != null ) {
            output.close();
          }
        }
    }
}
72
ответ дан 19 December 2019 в 20:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: