- Примеры работы с файловой системой на Kotlin
- Похожие записи:
- Kotlin проверка существования файла
- appendText
- bufferedReader
- bufferedWriter
- copyTo
- copyToRecursively
- Read and write files in Kotlin
- Kotlin Create File
- File.createNewFile()
- writeText()
- writeBytes()
- Read files in Kotlin
- bufferedReader()
- forEachLine()
- inputStream()
- readBytes()
- readLines()
- readText()
- Write content to files
- Append content to a file in kotlin
- Kotlin Files.exists() and Files.isSameFile()
- Methods
- exists(path : Path, varages options : LinkOptions) : Boolean
- isSameFile(path : Path, path2 : Path)
- Kotlin проверка существования файла
- Может ли Kotlin работать без JVM?
- Во что компилируется Kotlin?
- Котлин убивает Java?
- Почему Kotlin не популярен?
- Как компилируются файлы Kotlin?
- Можем ли мы написать API на Котлине?
Примеры работы с файловой системой на Kotlin
Работа с файловой системой в Kotlin может быть очень простой, если знать основные функции, доступные в базовой библиотеке языка. В этой статье мы рассмотрим несколько примеров работы с файловой системой на Kotlin.
Для создания файла в Kotlin можно использовать функцию `writeText()` объекта `File`. Например, чтобы создать файл с именем «file.txt» и записать в него строку «Hello, world!», можно использовать следующий код:
val file = File("file.txt") file.writeText("Hello, world!")
Функция `writeText()` создаст файл, если он не существует, и запишет в него текст. Если файл уже существует, функция перезапишет его содержимое.
Для чтения файла в Kotlin можно использовать функцию `readText()` объекта `File`. Например, чтобы прочитать содержимое файла «file.txt», созданного в предыдущем примере, можно использовать следующий код:
val file = File("file.txt") val text = file.readText() println(text)
Функция `readText()` вернет содержимое файла в виде строки. Если файл не существует, функция вернет пустую строку.
3. Проверка существования файла
Для проверки существования файла в Kotlin можно использовать функцию `exists()` объекта `File`. Например, чтобы проверить, существует ли файл «file.txt», можно использовать следующий код:
val file = File(«file.txt») if (file.exists())
Функция `exists()` вернет `true`, если файл существует, и `false`, если файл не существует.
Для удаления файла в Kotlin можно использовать функцию `delete()` объекта `File`. Например, чтобы удалить файл «file.txt», созданный в первом примере, можно использовать следующий код:
val file = File("file.txt") file.delete()
Функция `delete()` удалит файл, если он существует. Если файл не существует, функция вернет `false`.
Кроме работы с файлами, Kotlin также позволяет работать с каталогами. Для создания каталога можно использовать функцию `mkdir()` объекта `File`, а для удаления каталога — функцию `delete()` с параметром `true`. Например, чтобы создать каталог «dir», можно использовать следующий код:
val dir = File("dir") dir.mkdir()
Для удаления каталога «dir», можно использовать следующий код:
val dir = File("dir") dir.delete(true)
Функция `delete(true)` удалит каталог и все его содержимое, если оно существует. Если каталог не существует, функция вернет `false`.
В заключение можно сказать, что работа с файловой системой в Kotlin может быть очень простой и интуитивно понятной при использовании базовых функций языка. Конечно, существуют и другие функции для работы с файловой системой, но эти примеры достаточно для начала.
Похожие записи:
Kotlin проверка существования файла
Appends the specified collection of char sequences lines to a file terminating each one with the platform’s line separator.
Appends the specified sequence of char sequences lines to a file terminating each one with the platform’s line separator.
appendText
Appends text to the content of this file using UTF-8 or the specified charset.
bufferedReader
Returns a new BufferedReader for reading the content of this file.
fun Path . bufferedReader (
charset : Charset = Charsets.UTF_8 ,
bufferSize : Int = DEFAULT_BUFFER_SIZE ,
vararg options : OpenOption
) : BufferedReader
bufferedWriter
Returns a new BufferedWriter for writing the content of this file.
fun Path . bufferedWriter (
charset : Charset = Charsets.UTF_8 ,
bufferSize : Int = DEFAULT_BUFFER_SIZE ,
vararg options : OpenOption
) : BufferedWriter
copyTo
Copies a file or directory located by this path to the given target path.
copyToRecursively
Recursively copies this directory and its content to the specified destination target path. Note that if this function throws, partial copying may have taken place.
fun Path . copyToRecursively (
target : Path ,
onError : ( source : Path , target : Path , exception : Exception ) -> OnErrorResult = < _, _, exception ->throw exception > ,
followLinks : Boolean ,
overwrite : Boolean
) : Path
fun Path . copyToRecursively (
target : Path ,
onError : ( source : Path , target : Path , exception : Exception ) -> OnErrorResult = < _, _, exception ->throw exception > ,
followLinks : Boolean ,
copyAction : CopyActionContext . ( source : Path , target : Path ) -> CopyActionResult = < src, dst ->src.copyToIgnoringExistingDirectory(dst, followLinks) >
) : Path
Read and write files in Kotlin
In Kotlin, to check if the file already exists, use File.exists(), exists() returns a Boolean value. It returns true if the file exists and false if the file does not exist.
import java.io.File fun main(args: Array) < val filename = "chercher tech.txt" var fileObject = File(filename) var fileExists = fileObject.exists() if(fileExists)< print("$filename file does exist.") >else < print("$filename file does not exist.") >>
Kotlin Create File
In Kotlin, a new file could be created using
We will learn about how to use these file writing methods in kotlin .
File.createNewFile()
File.createNewFile() creates a new file if it does not exist already and returns a Boolean value of true. If the file exists at the path provided, then createNewFile() functions returns false. The file created is empty and has zero bytes written to it.
createNewFile() is the way in which the existing file will not be overridden. Remaining ways will overwrite the file if it exists.
In the below example, we will try to create a new file and then we try to override it.
import java.io.File fun main(args: Array) < val fileName = "cherchertech.txt" var fileObject = File(fileName) // create a new file val isNewFileCreated :Boolean = fileObject.createNewFile() if(isNewFileCreated)< println("$fileName is created successfully.") >else < println("$fileName already exists.") >// try creating a file that already exists val isFileCreated :Boolean = fileObject.createNewFile() if(isFileCreated) < println("$fileName is created successfully.") >else < println("$fileName already exists.") >>
writeText()
writeText() function creates a new file if it does not exist already and writes the text (string argument) to the file. If an empty string is provided, the file is created and nothing is written to it.
if file exists in the path already then the file will be overridden, Sets the content of this file as text encoded using UTF-8 or charset specified by the user.
import java.io.File fun main(args: Array) < val fileName = "chercher tech.txt" var fileObject = File(fileName) // create a new file fileObject.writeText("This is some text for file writing operations") >
writeBytes()
writeBytes() function creates a new file and writes an array of bytes provided to the file created. If this file already exists, it becomes overwritten.
Read files in Kotlin
We can read contents of a file in Kotlin either by using standard methods of the java.io.File class, or the methods that Kotlin provides as an extension to java.io.File.
chercher tech.txt file content
Chercher tech provides the tutorials for the future technologies, We are writing an article one per day Actually the author is not a developer, he is a tester first author thought to write a tutorial only for selenium then he thought for protractor python and then UI path now writing kotlin file operations
bufferedReader()
bufferedReader() to read contents of a file into BufferedReader
import java.io.File fun main(args: Array) < val file = File("chercher tech.txt") val bufferedReader = file.bufferedReader() val text:List = bufferedReader.readLines() for(line in text)< println(line) >>
forEachLine()
forEachLine() reads this file line by line using the specified charset and calls the action for each line. The default charset is UTF-8
import java.io.File fun main(args: Array) < val file = File("chercher tech.txt") file.forEachLine < println(it) >>
inputStream()
inputStream() Constructs a new FileInputStream of this file and returns it as a result.
import java.io.File import java.io.InputStream import java.nio.charset.Charset fun main(args: Array) < val file = File("chercher tech.txt") var ins:InputStream = file.inputStream() // read contents of IntputStream to String var content = ins.readBytes().toString(Charset.defaultCharset()) println(content) >
readBytes()
readBytes() Gets the entire content of this file as a byte array. This method is not recommended on huge files. It has an internal limitation of 2 GB byte array size.
import java.io.File fun main(args: Array) < val file = File("chercher tech.txt") var bytes:ByteArray = file.readBytes() for(byte in bytes)< print(byte.toChar()) >>
readLines()
readLines() Reads the file content as a list of lines. Do not use this function for huge files.
import java.io.File fun main(args: Array) < val file = File("chercher tech.txt") var lines:List = file.readLines() for(line in lines)< println(line) >>
readText()
readText() Gets the entire content of this file as a String using UTF-8 or charset specified by the user
import java.io.File fun main(args: Array)
Write content to files
Creating a file is different from writing a file, we can write content to file while creating it but sometime we may want to write to a file which is already present in the file system.
We can write a using writeText() function present in the File class
import java.io.File fun main(args: Array) < val filename = "chercher tech.txt" // content to be written to file var content:String = "dummy text to show writing to file in koltin chercher tech" File(filename).writeText(content) >
import java.io.PrintWriter fun main(args: Array) < val filename = "chercher tech.txt" // content to be written to file var content:String = "dummy text to show writing to file in koltin chercher tech" // using java class java.io.PrintWriter val writer = PrintWriter(filename) writer.append(content) writer.close() >
printWriter() function calls the PrintWriter constructor internally
import java.io.File fun main(args: Array) < val filename = "chercher tech.txt" // content to be written to file var content:String = "dummy text to show writing to file in koltin chercher tech" // write content to file File(filename).printWriter().use < param ->param.println(content) > >
Append content to a file in kotlin
What is the difference between simply writing to a file vs appending data to a file?
In the case of writing to a file, a program can start writing from the start but in the case of appending text , you start writing from the end of the file.
You can append text into an existing file in Kotlin by opening a file using appendText() function in File class. One of the common examples of appending text to file is logging
import java.io.File fun main(args: Array) < val filename = "chercher tech.txt" // content to be written to file var content:String = "dummy text to show writing to file in kotlin chercher tech" // write content to file File(filename).writeText(content) File(filename).appendText("ppppppp") >
Kotlin Files.exists() and Files.isSameFile()
The Files class provides utility methods that are useful for working with the file system.
import java.io.BufferedWriter import java.io.FileWriter import java.nio.file.Files import java.nio.file.Paths private val belchers = "belchers.txt" private fun makeBelcherFile() < val names = listOf("Bob", "Linda", "Tina", "Gene", "Louise") BufferedWriter(FileWriter(ch9.paths.belchers)).use < writer ->names.forEach < name ->with(writer) < write(name) newLine() >> > > fun main(args : Array) < //Check if the file exists first, and create it if needed if (!Files.exists(Paths.get(belchers)))< makeBelcherFile() >val relativeBeclhers = Paths.get(belchers) val absoluteBelchers = Paths.get(System.getProperty("user.dir"), belchers) //Check if both Paths point to the same file println("Using Files.isSameFile() => " + (Files.isSameFile(relativeBeclhers, absoluteBelchers))) >
Using Files.isSameFile() => true
The program uses Files.exists to see if we have a belchers.txt file on the underlying os. If the method returns false, we call makeBelchersFile() on line 24 to create the file. Lines 26 and 27 create two different Path objects to point at the belchers.txt file.
The relativeBelchers is a Path object created using a relative path to the file. The absoluateBelchers object is created with an aboslute path by combining the current working directory with the name of the file. One line 38, we use the Files.isSameFile and pass both of the Path objects to it. Since both of these Paths point at the same file, it returns True.
Methods
exists(path : Path, varages options : LinkOptions) : Boolean
The exists method is used to test if a file exists or not. We can also pass optional LinkOptions that instructs the method on how to handle symbolic links in the file system. For example, if we don’t want to follow links, then pass NOFOLLOE_LNKS.
isSameFile(path : Path, path2 : Path)
Tests if the both path objects point to the same file. It’s the same as checking if path == path2.
Kotlin проверка существования файла
Может ли Kotlin работать без JVM?
Да. Kotlin/Native доступен как часть проекта Kotlin. Он компилирует Kotlin в собственный код, который может работать без виртуальной машины.
Во что компилируется Kotlin?
Kotlin в основном нацелен на JVM, но также компилируется в JavaScript (например, для интерфейсных веб-приложений, использующих React) или нативный код через LLVM (например, для нативных приложений iOS, разделяющих бизнес-логику с приложениями Android).
Котлин убивает Java?
Когда дело доходит до разработки приложений для Android, Java, вероятно, будет первым языком программирования, который придет вам на ум, однако многие ожидают, что Kotlin убьет Java. У Java есть проблемы, которые могут усложнить работу разработчика.
Почему Kotlin не популярен?
Kotlin все еще не очень хорошо зарекомендовал себя. Таким образом, сообщество его разработчиков очень мало по сравнению с другими языками программирования. Колтин тестирует слабые шаблоны, что очень усложняет чтение кода. Высокая кривая обучения Kotlin и смена команд связаны со строгим синтаксисом языка.
Как компилируются файлы Kotlin?
Компилятор Kotlin для JVM компилирует исходные файлы Kotlin в файлы классов Java. Инструментами командной строки для компиляции Kotlin в JVM являются kotlinc и kotlinc-jvm. Вы также можете использовать их для выполнения файлов сценариев Kotlin. В дополнение к общим параметрам компилятор Kotlin/JVM имеет параметры, перечисленные ниже.
Можем ли мы написать API на Котлине?
Многим разработчикам Android программирование на стороне сервера кажется чем-то из другого мира. Ну не беспокойтесь больше! У нашего любимого Kotlin есть решение и для этого.