Сибирские интеграционные системы
AngularSIS #1.18 - https://www.youtube.com/playlist?list=PLmEQRj1_Mt5fkeBYOw1o8k_o8-7POFZJN JavaSIS #2.19 - https://www.youtube.com/playlist?list=PLmEQRj1_Mt5f5MlXGlf5kzldb9Rl8Pwuo
Владимир
Лебедко
Обо мне
Лебедко Владимир
старший разработчик
компания "Сибирские Интеграционные Системы"
Опыт работы:
Технологии, с которыми работал:
Для чего ?
String getPath() - Путь к файлу
String getAbsolutePath() - Абсолютный путь
String getCanonicalPath() - Абсолютный канонический путь
boolean canRead() - Доступ на чтение (атрибут)
boolean canWrite() - Доступ на запись (атрибут)
boolean isDirectory() - Это директория ?
boolean isFile() - Это файл?
File getParent() - родительский каталог
boolean mkdir() - создание каталога
boolean mkdirs() - создание каталога с подкаталогами
boolean length() - размер
Path resolve(String) - подкаталог
Path resolve(Path) - подкаталог
File toFile() - экземпляр File
Path subpath() - часть пути
Path getParent() - родитель
Объектное представление пути файловой системы
Paths.get("C:/temp1/temp2/someFile.txt");
Paths.get("C:/", "temp1", "temp2", "someFile.txt");
Идентично
Почему не просто new PathSomeImpl() ?
public static Path get(String first, String... more) {
return FileSystems.getDefault().getPath(first, more);
}
Платформо-зависимая имплементация
WindowsPath - Windows
UnixPath - Linux
File inputFile = Paths.get(".")
.resolve("inputAuthors.csv")
.toFile();
FileInputStream fis = new FileInputStream(inputFile);
int read = 0;
while ((read = fis.read()) != -1) {
System.out.print((char) read);
}
fis.close();
File copyFile = tempFolder.
newFile("copyAuthors.csv");
File inputAuthorsFile =
Paths.get(".").resolve("inputAuthors.csv").toFile();
FileInputStream fis = new FileInputStream(inputAuthorsFile);
FileOutputStream fos = new FileOutputStream(copyFile);
int read = 0;
byte[] buffer = new byte[4096];
while ((read = fis.read(buffer)) != -1) {
fos.write(buffer, 0, read);
}
fis.close();
fos.close();
File file = Paths.get(".").resolve("inputAuthors.csv").toFile();
FileInputStream fis = new FileInputStream(file);
InputStreamReader reader =
new InputStreamReader(fis,StandardCharsets.UTF_8);
BufferedReader lineReader = new BufferedReader(reader);
String readLine = null;
while ((readLine = lineReader.readLine()) != null)
{
System.out.println(readLine);
}
lineReader.close();
Path file =
Paths.get(FOLDER)
.resolve("inputAuthors.csv");
Scanner scanner = new Scanner(file,
String.valueOf(StandardCharsets.UTF_8));
while (scanner.hasNext())
{
System.out.println(scanner.nextLine());
}
scanner.close();
java.io.Files
File writeFile = tempFolder.newFile("somedata.txt");
BufferedWriter buffWriter
= Files.newBufferedWriter(writeFile.toPath(),
StandardCharsets.UTF_8,
StandardOpenOption.APPEND);
List<String> stringArray = Arrays.asList("Строка номер 1",
"Строка номер 2");
for (String itemString :
stringArray) {
buffWriter.write(itemString);
buffWriter.newLine();
}
buffWriter.close();
метод не выполнится
Как этого избежать?
buffWriter.close();
обработчик
try {
BufferedWriter buffWriter
= Files.newBufferedWriter(writeFile.toPath());
//Блок кода бросающий исключение IOException
//Например кончилось место на диске
buffWriter.write("someText");
buffWriter.close();
}
catch (IOException e) {
buffWriter.close();
}
Try - Catch
ByteArrayInputStream bais = null;
try {
byte[] bytes = new byte[100];
bais = new ByteArrayInputStream(bytes);
throw new IllegalArgumentException();
}
finally {
System.out.println("Finaly execute");
if(bais!=null) {
bais.close();
System.out.println("Stream closed");
}
}
Finally - выполнится в любом случае
Освобождаем ресурсы правильно!
try (BufferedReader lineReader
= new BufferedReader(reader)) {
String readLine = null;
while ((readLine = lineReader.readLine()) != null) {
System.out.println(readLine);
}
}
Все просто.
CSVAdapter<Author> authorCsvAdapter =
new CSVAdapterImpl<Author>(Author.class,fileReader,fileWriter);
Author author = authorCsvAdapter.read(0);
assertEquals("Лев Николаевич Толстой",author.getName());
assertEquals("Ясная Поляна",author.getBirthPlace());
Author authorNew = new Author();
authorNew.setName("Некоторый Автор");
authorNew.setName("Некоторый Город");
int rowIndex = authorCsvAdapter.append(authorNew);
Author authorNewOpened = authorCsvAdapter.read(rowIndex);
assertEquals("Некоторый Автор",author.getName());
assertEquals("Некоторый Город",author.getBirthPlace());
By Сибирские интеграционные системы
Работа с файловой системой. Потоки ввода/вывода. Обработка исключений.