Skip to content

File Reading Documentation

Asterios Raptis edited this page Feb 10, 2025 · 3 revisions

Introduction

Reading files efficiently is crucial for many applications, whether it's loading configuration files, processing logs, or reading structured data. The file-worker library provides utilities for handling file content retrieval in a flexible and performance-optimized manner.

Imagine you need to load a configuration file, extract key values from a CSV, or read large text files line by line. This library enables these tasks with minimal code while maintaining efficiency.

Features Overview

  • Read entire file content as a string or byte array.
  • Retrieve specific lines or properties from a file.
  • Count total lines in a file efficiently.
  • Convert file content into structured objects.

Getting Started

For installation and dependencies, refer to the Getting Started guide.


Reading Files with ReadFileExtensions

The ReadFileExtensions class provides methods for extracting file content.

Example: Reading a File into a String

File file = new File("config.properties");
String content = ReadFileExtensions.fromFile(file);

System.out.println("File content: " + content);

Example: Reading a File as a Byte Array

byte[] fileBytes = ReadFileExtensions.readFileToBytearray(file);

System.out.println("File size in bytes: " + fileBytes.length);

Example: Reading a Specific Line

String firstLine = ReadFileExtensions.readHeadLine("logfile.log");

System.out.println("First log entry: " + firstLine);

Unit Test Coverage

The ReadFileExtensionsTest class verifies these functionalities:

@Test
public void testReadFromFile() throws IOException {
    File file = new File("test.txt");
    StoreFileExtensions.toFile(file, "Hello World");

    String content = ReadFileExtensions.fromFile(file);
    assertEquals("Hello World", content);
}

Counting Lines in a File

For large files, counting lines efficiently is essential.

Example: Counting Lines

long lineCount = ReadFileExtensions.countAllLines(new File("bigdata.txt"));

System.out.println("Total lines: " + lineCount);

Unit Test Coverage

@Test
public void testCountAllLines() throws IOException {
    File file = new File("data.txt");
    StoreFileExtensions.toFile(file, "Line 1
Line 2
Line 3");

    long count = ReadFileExtensions.countAllLines(file);
    assertEquals(3, count);
}

Reading Files as Properties

The library allows reading properties from configuration files.

Example: Reading a Properties File

Properties properties = ReadFileExtensions.readPropertiesFromFile("config.properties");

String dbUrl = properties.getProperty("database.url");
System.out.println("Database URL: " + dbUrl);

Unit Test Coverage

@Test
public void testReadPropertiesFromFile() throws IOException {
    File propertiesFile = new File("config.properties");
    Properties properties = new Properties();
    properties.setProperty("app.name", "FileWorker");

    StoreFileExtensions.toFile(propertiesFile, properties.toString());

    Properties loadedProps = ReadFileExtensions.readPropertiesFromFile(propertiesFile.getAbsolutePath());
    assertEquals("FileWorker", loadedProps.getProperty("app.name"));
}

Reading Specific Lines

The library allows retrieving individual lines efficiently.

Example: Reading a Specific Line

String thirdLine = ReadFileExtensions.readLine(new File("sample.txt"), 2);

System.out.println("Line 3: " + thirdLine);

Unit Test Coverage

@Test
public void testReadLine() throws IOException {
    File file = new File("test.txt");
    StoreFileExtensions.toFile(file, "Line1
Line2
Line3");

    String line = ReadFileExtensions.readLine(file, 1);
    assertEquals("Line2", line);
}

Conclusion

The file-worker library offers robust tools for reading and processing file content. Whether you're extracting configurations, reading large data files, or parsing properties, this library provides an efficient and reliable solution.

Start using it today to streamline your file handling operations!

Clone this wiki locally