Как создать директорию в java
Перейти к содержимому

Как создать директорию в java

  • автор:

Шаг 1. Создание рабочей директории

В работе будет использоваться командная строка Windows и текстовый редактор Notepad++. С помощью командной строки мы будем создавать директории, компилировать исходный код, запускать программы. А в Notepad++ мы будем писать код программы. Повторите следующие действия.

1. Запустите командную строку windows.

Варианты запуска командной строки: 1) Нажать сочетание «windows+r», затем ввести «cmd» и нажать enter (работает для всех версий windows) 2) Нажать кнопку Пуск и ввести слова «cmd» или «Командная строка» (работает для windows 10, 8, 7) 3) Нажать кнопку Пуск – Все программы – Стандартные – Командная строка (работает для windows xp)

2. Создаем директорию (папку), в которой будет храниться файлы с исходным кодом и скомпилированные файлы.

Запустите командную строку, как показано в пункте 1. Для создания директории используется команда «mkdir» и имя директории. Имя директории и имя папки должны быть разделены пробелом. Для программирования нужно все директории и файлы должны иметь названия на латинице. Пусть директория, в которой будут находиться наши файлы, будет называться «java». Чтобы создать директорию, введите в командную строку «mkdir java» без кавычек и нажмите enter. Убедиться в том, что директория создана можно при помощи команды «dir». Будет выведен список файлов и папок с датами их создания. Внимание: в JAWS перемещение по тексту с результатами вывода командной строки осуществляется при помощи цифровой клавиатуры с выключенным режимом «Num Lock». Вывести список всех папок и файлов без дополнительной информации можно при помощи той же команды с параметром «B». Для этого введите «dir /B» и нажмите enter.

3. Входим в созданную папку.

Для перехода по папкам используется команда «cd» (сокращение от change directory – сменить директорию). Чтобы войти в директорию, нужно ввести команду «cd» и имя директории через пробел. Чтобы выйти из директории (подняться на уровень выше) введите «cd ..». Войдите в созданную папку «java». Для этого введите «cd java».

Как создать папку?

Вот у меня такой вопрос. Я хочу сделать 5 снимков с камеры и чтоб эти снимки сохранились в одной папке которая динамически должна создаться на CD карте. Я не до конца понимаю будет ли создаваться папка, или файлы просто сохраниться где то на CD карте? Мне нужно, чтоб создавалась одна папка и туда все созранялось, чтоб я мог хранить ссылку на эту папку и работать с ней(допустим удалять из нее все обьекты) у меня есть вот такой код

private static class ImageSaver implements Runnable < private final Image mImage; private File mFile = new File(Environment.getExternalStorageDirectory(), "pic.jpg"); public ImageSaver(Image image) < mImage = image; >@Override public void run() < ByteBuffer buffer = mImage.getPlanes()[0].getBuffer(); byte[] bytes = new byte[buffer.remaining()]; buffer.get(bytes); FileOutputStream output = null; try < output = new FileOutputStream(mFile); output.write(bytes); >catch (IOException e) < e.printStackTrace(); >finally < mImage.close(); if (null != output) < try < output.close(); >catch (IOException e) < e.printStackTrace(); >> > > 

Отслеживать
задан 16 мар 2016 в 14:42
11k 18 18 золотых знаков 64 64 серебряных знака 128 128 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

В вашем случае все картинки будут сохраняться в один файл. А именно в pic.jpg. Для начала создайте папку используя функцию mkdir() :

File folder = new File(Environment.getExternalStorageDirectory() + File.separator + "pictures"); if (!folder.exists())

обычно для сохранения картинок используют какие-то уникальные названия. Чаще всего это дата и время в имени файла + .jpg

После всех операций создавайте новый файл, передав в его параметры значения, которые вы получили. Что-то типа такого :

File mFile = new File(folder, currentDateAndTime + ".jpg");//currentDateAndTime - это строка, созданная из даты и времени, типа 2016-03-16-18-00 

Как создать папку java

Для coздaния oднoгo кaтaлoгa пpeднaзнaчeн мeтoд mkdir() :

new File("C:\Directory").mkdir(); 

Для coздaния кaтaлoгa, a тaкжe вceх poдитeльcких кaтaлoгoв, пpeднaзнaчeн мeтoд mkdirs() :

new File("C:\Directory\SubDirectory1\SubDirectory2").mkdirs(); 

Oбa эти мeтoдa вoзвpaщaют бyлeвo знaчeниe: true ecли кaтaлoг (вo втopoм cлyчae — co вceми poдитeльcкими кaтaлoгaми) coздaн ycпeшнo и false пpи вoзникнoвeнии пpoблeм.

Файлы и директории, класс File

Класс File пакета java.io используется для управления информацией о файлах и каталогах. На уровне операционной системы файлы и каталоги имеют существенные отличия, но в Java они описываются одним классом File. Каталог в Java трактуется как обычный файл, но с дополнительным свойством — списком имен файлов, который можно просмотреть с помощью метода list.

В зависимости от назначения объект File — файл или каталог, можно использовать один из конструкторов для создания объекта:

File (String путь_к_каталогу); File (String путь_к_каталогу, String имя_файла); File (File каталог, String имя_файла);
Примеры создания объектов File
// Создание File для каталога File dir = new File("C://dir_test"); // Создание File для файлов, которые находятся в каталоге File file1 = new File("C://dir_test", "Hello1.txt"); File file2 = new File(dir, "Hello2.txt");

Свойства и методы класса File

Для определения стандартных свойств файла в классе File имеются различные методы. Однако класс File несимметричен, т.е. методы определения свойств объекта существуют, но соответствующие функции для изменения этих свойств отсутствуют.

Функции Описание
String getName() Наименование файла или каталога.
String getParent() Наименование родительского каталога.
long length() Функция определения размера файла в байтах.
String getAbsolutePath() Функция определения абсолютного пути файла или каталога.
boolean delete() Удаления файла или каталога.
boolean exists() Проверка существования файла или каталога.
boolean isDirectory() Проверка, является ли данный объект каталогом.
boolean isFile() Проверка, является ли данный объект файлом.
long lastModified() Функция определения даты последней модификации файла.
boolean canRead() Проверка, можно ли читать данные из файла.
boolean canWrite() Проверка, можно ли записывать данные в файл.
boolean isHidden() Проверка, являются ли каталог или файл скрытыми.
String[] list() Чтение массива наименований файлов и подкаталогов.
File[] listFiles() Чтение массива файлов и подкаталогов.
boolean mkdir() Создание нового каталога.
boolean renameTo(File dest) Переименовывание файла или каталога.

В следующем примере открываем файл «d:/test/MyFile.txt» (Windows) и извлекаем его характеристики:

import java.io.File; public class FileTest < public static void main(String args[]) < File fl = new File("d:\\test\\MyFile.txt"); System.out.println ("Имя файла: " + fl .getName()); System.out.println ("Путь: " + fl.getPath()); System.out.println ("Полный путь: " + fl.getAbsolutePath()); System.out.println ("Родительский каталог: " + fl.getParent()); System.out.println (fl.exists() ? "Файл существует" : "Файл не существует"); System.out.println (fl.canWrite() ? "Свойство - можно записывать" : "Свойство - нельзя записывать"); System.out.println (fl.canRead() ? "Свойство - можно читать" : "Свойство - нельзя читать"); System.out.println ("Это директория ? " + (fl.isDirectory() ? "да": " нет")); System.out.println ("Это обычный файл ? " + (fl.isFile() ? "да" : "нет")); System.out.println ("Последняя модификация файла : " + fl. lastModified()); System.out.println ("Размер файла : " + fl.length() + " bytes"); >>

В консоли будет отпечатана следующая информация:

Имя файла: MyFile.txt Путь: d:\test\MyFile.txt Полный путь: d:\test\MyFile.txt Родительский каталог: d:\test Файл существует Свойство - можно записывать Свойство - можно читать Это директория ? нет Это обычный файл ? да Последняя модификация файла : 1441710053162 Размер файла : 12 bytes

Интерфейс FileFilter

Класс File включает метод, позволяющий прочитать список только определенных файлов.

public File[] listFiles(FileFilter filter)

В отличие от одноименного метода, но без параметра, данный метод отбирает только те файлы каталога, которые удовлетворяют определенному условию. Параметр filter предназначен для задания этого условия. При этом тип параметра FileFilter — это не класс, а интерфейс, который имеет всего один метод, возвращающий true, если файл удовлетворяет определенным условиям, и false в противном случае.

public boolean accept(File pathname)

Метод listFiles будет вызывать метод accept для каждого файла в каталоге, и те, для которых accept вернет true, будут включены в результирующий список. Остальные будут проигнорированы.

Для использования FileFilter необходимо создать объект и определить в нем соответствующий метод accept.

class Filter implements FileFilter < String[] ext; Filter(String ext) < this.ext = ext.split(","); >private String getExtension(File pathname) < String filename = pathname.getPath(); int i = filename.lastIndexOf('.'); if ((i >0) && (i < filename.length()-1)) < return filename.substring(i+1).toLowerCase(); >return ""; > public boolean accept(File pathname) < if (!pathname.isFile()) return false; String extension = getExtension(pathname); for (String e : ext) < if (e.equalsIgnoreCase(extension)) return true; >return false; > >
Пример использования фильтра FileFilter
import java.io.File; import java.io.FileFilter; public class FileTest < public static void main(String args[]) < // Определение директории File dir = new File("."); // Чтение полного списка файлов каталога File[] lst1 = dir.listFiles(); // Чтение списка файлов каталога // с расширениями "png" и "jpg" File[] lst2 = dir.listFiles(new Filter("png,jpg")); System.out.println ("lst1.length = " + lst1.length + ", lst2.length = " + lst2.length); >>

Чтение содержимого файла FileInputStream

Для чтения содержимого файла можно использовать класс FileInputStream, который является наследником класса InputStream и реализует все его методы. Конструктор класса FileInputStream :

FileInputStream(String fileName) throws FileNotFoundException

Если файл не может быть открыт то генерируется исключение FileNotFoundException.

Пример считывания данных из файла и вывод содержимого в консоль:

import java.io.FileInputStream; public class FilesApp < public static void main(String[] args) < try < FileInputStream fis; fis=new FileInputStream("C:\\test_dir\\test.txt"); System.out.println("Размер файла: " + fis.available() + " байт(а)"); int i = -1; while(( i = fis.read()) != -1)< System.out.print((char)i); >fis.close(); > catch(IOException e) < System.out.println(e.getMessage()); >> >

Данные файла можно считать в массив байтов :

byte[] buffer = new byte[fis.available()]; // чтение файла в буфер fis.read (buffer, 0, fis.available()); System.out.println («Содержимое файла:»); for(int i = 0; i

Класс FileInputStream предназначен прежде всего для работы с двоичными файлами. Его можно использовать для работы с текстовыми файлами, но все же для этой задачи больше подходят другие классы.

Пример использования FileInputStream для чтения файла свойств в кодировке UTF-8:

Файл свойств «data.properties» в кодировке UTF-8:

# # Параметры сервера SMTP # company=Рога и копыта manager=Остап Бендер
import java.io.Reader; import java.io.IOException; import java.io.InputStream; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.Properties; public class Main < public static void main(String[] args) < try < InputStream is; is = new FileInputStream("data.properties"); if (is != null) < Reader reader; reader = new InputStreamReader(is, "UTF-8"); Properties props = new Properties(); props.load(reader); System.out.println ( props.getProperty ("company") + ", " props.getProperty ("manager")); is.close(); >> catch (IOException e) < e.printStackTrace(); >> >

Запись в файл FileOutputStream

Класс FileOutputStream, является производным от класса OutputStream, поэтому наследует всю его функциональность.

Пример записи строки в файл:

import java.io.FileOutputStream; public class FilesApp < public static void main(String[] args) < String text = "Hello world!"; // строка для записи try < FileOutputStream fos; fos=new FileOutputStream("C:\\test_dir\\test.txt"); // перевод строки в байты byte[] buffer = text.getBytes(); fos.write(buffer, 0, buffer.length); >catch(IOException e) < System.out.println(e.getMessage()); >> >

Для создания объекта FileOutputStream используется конструктор, принимающий в качестве параметра путь к файлу для записи. Для записи строки ее сначала переводим в массив байт и с помощью метода write строка записывается в файл. Необязательно записывать весь массив байтов. Используя перегрузку метода write(), можно записать и одиночный байт:

fos.write(buffer[0]); // запись только первого байта

Пример перезаписи содержимого из одного файла в другой:

import java.io.FileInputStream; import java.io.FileOutputStream; public class FilesApp < public static void main(String[] args) < try < FileInputStream fis; FileOutputStream fos; fis=new FileInputStream("C:\\test_dir\\test.txt"); fos=new FileOutputStream("C:\\test_dir\\new.txt"); byte[] buffer = new byte[fis.available()]; // считываем буфер fis.read(buffer, 0, buffer.length); // записываем из буфера в файл fos.write(buffer, 0, buffer.length); fis.close(); fos.close(); >catch(IOException e) < System.out.println(e.getMessage()); >> >

Класс FileOutputStream предназначен прежде всего для записи двоичных файлов. Его можно использовать для работы с текстовыми файлами, но все же для этой задачи больше подходят другие классы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *