Пожалуйста, используйте это, я думаю, что гораздо лучшие решения. 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();
Выход:
Обратите внимание, что каждый из приведенных ниже примеров кода может выбросить 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);
В 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).
Если вы по какой-то причине хотите разделить процесс создания и записи, 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 ()
выполняет проверку существования и файл создается атомарно. Это может быть полезно, например, если вы хотите убедиться, что вы являетесь создателем файла, прежде чем писать в него.
Если вы хотите получить относительно безболезненный опыт, вы также можете взглянуть на пакет ввода-вывода Apache Commons , а точнее на FileUtils
класс .
Никогда не забывайте проверять сторонние библиотеки. Joda-Time для манипулирования датами, Apache Commons Lang StringUtils
для общих строковых операций и может сделать ваш код более читабельным.
Java - отличный язык, но стандартная библиотека иногда бывает немного низкоуровневой. Мощный, но тем не менее низкоуровневый.
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();
}
}
}
}