CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-cn-hutool--hutool-all

A comprehensive Java utility library providing static method wrappers for common operations to reduce API learning costs and improve development efficiency

Pending
Overview
Eval results
Files

file-io-operations.mddocs/

File and IO Operations

Comprehensive file and I/O utilities through FileUtil and IoUtil classes, providing file operations, stream handling, and resource management.

Import

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.ResourceUtil;
import cn.hutool.core.io.NioUtil;

File Operations

File Reading

// Read file content as string
public static String readUtf8String(File file);
public static String readString(File file, Charset charset);
public static String readString(String path);

// Read as bytes
public static byte[] readBytes(File file);
public static byte[] readBytes(String path);

// Read as lines
public static List<String> readUtf8Lines(File file);
public static List<String> readLines(File file, Charset charset);

File Writing

// Write string content
public static File writeUtf8String(String content, File file);
public static File writeString(String content, File file, Charset charset);
public static File writeString(String content, String path, Charset charset);

// Write bytes
public static File writeBytes(byte[] data, File file);
public static File writeBytes(byte[] data, String path);

// Append content
public static File appendUtf8String(String content, File file);
public static File appendString(String content, File file, Charset charset);

Usage Examples:

// Read file content
String content = FileUtil.readUtf8String("config.txt");
byte[] data = FileUtil.readBytes("image.jpg");
List<String> lines = FileUtil.readUtf8Lines("data.csv");

// Write file content
FileUtil.writeUtf8String("Hello World", "greeting.txt");
FileUtil.writeBytes(imageData, "output.jpg");

// Append to file
FileUtil.appendUtf8String("\nNew line", "log.txt");

File Management

File Creation and Deletion

// Create files and directories
public static File touch(File file);
public static File touch(String fullFilePath);
public static File mkdir(String dirPath);
public static File mkdir(File dir);

// Delete operations
public static boolean del(File file);
public static boolean del(String fullFileOrDirPath);
public static boolean clean(File directory);

File Copying and Moving

// Copy operations
public static File copy(File src, File dest, boolean isOverride);
public static File copy(String srcPath, String destPath, boolean isOverride);

// Move operations  
public static File move(File src, File dest, boolean isOverride);
public static File move(String srcPath, String destPath, boolean isOverride);

// Rename
public static File rename(File file, String newName, boolean isOverride);

Usage Examples:

// Create file and directories
File newFile = FileUtil.touch("data/output.txt");  // Creates parent dirs if needed
File newDir = FileUtil.mkdir("reports/2023");

// Copy files
FileUtil.copy("source.txt", "backup/source.txt", true);
FileUtil.copy(new File("data.csv"), new File("archive/data.csv"), false);

// Move and rename
FileUtil.move("temp.txt", "final.txt", true);
FileUtil.rename(new File("old-name.txt"), "new-name.txt", false);

File Information

File Properties

// File existence and type
public static boolean exist(File file);
public static boolean exist(String path);
public static boolean isDirectory(File file);
public static boolean isFile(File file);

// File size
public static long size(File file);
public static String readableFileSize(long size);

// File time
public static Date lastModifiedTime(File file);
public static File setLastModifiedTime(File file, Date time);

File Name Operations

// Get file name parts
public static String getName(File file);
public static String getName(String filePath);
public static String mainName(File file);  // without extension
public static String mainName(String fileName);
public static String extName(File file);   // extension only
public static String extName(String fileName);

// Path operations
public static String getParent(File file, int level);
public static String normalize(String path);
public static String getAbsolutePath(File file);

Stream Operations

Input/Output Stream Utilities

// Copy streams
public static long copy(InputStream in, OutputStream out);
public static long copy(InputStream in, OutputStream out, int bufferSize);
public static long copy(Reader reader, Writer writer);

// Read from streams
public static String read(InputStream in, Charset charset);
public static String read(Reader reader);
public static byte[] readBytes(InputStream in);

// Write to streams
public static void write(OutputStream out, boolean isCloseOut, byte[] content);
public static void write(Writer writer, boolean isCloseWriter, String content);

Stream Conversion

// Convert between stream types
public static BufferedInputStream toBuffered(InputStream in);
public static BufferedOutputStream toBuffered(OutputStream out);
public static BufferedReader toBuffered(Reader reader);
public static BufferedWriter toBuffered(Writer writer);

// Stream to collections
public static List<String> readLines(InputStream in, Charset charset);
public static <T> List<T> readObj(InputStream in);

Usage Examples:

// Copy streams with automatic resource management
try (FileInputStream fis = new FileInputStream("input.txt");
     FileOutputStream fos = new FileOutputStream("output.txt")) {
    long bytesCopied = IoUtil.copy(fis, fos);
    System.out.println("Copied " + bytesCopied + " bytes");
}

// Read from URL
try (InputStream in = new URL("https://example.com/data.json").openStream()) {
    String json = IoUtil.read(in, CharsetUtil.UTF_8);
    // Process JSON data
}

Resource Management

Classpath Resources

// Get resource streams
public static InputStream getStream(String resource);
public static InputStream getStreamSafe(String resource);

// Read resource content
public static String readUtf8Str(String resource);
public static String readStr(String resource, Charset charset);
public static byte[] readBytes(String resource);

// Get resource URLs and files
public static URL getResource(String resource);
public static File getResourceObj(String resource);

Resource Cleanup

// Close resources safely
public static void close(Closeable closeable);
public static void closeQuietly(Closeable... closeables);

// Try-with-resources utilities
public static <T> T readThenClose(InputStream in, Function<InputStream, T> reader);

Usage Examples:

// Read classpath resources
String config = ResourceUtil.readUtf8Str("application.properties");
byte[] templateData = ResourceUtil.readBytes("templates/email.html");

// Safe resource handling
InputStream inputStream = null;
try {
    inputStream = ResourceUtil.getStream("data.xml");
    // Process stream
} finally {
    IoUtil.closeQuietly(inputStream);
}

// Functional approach
String data = IoUtil.readThenClose(
    new FileInputStream("large-file.txt"),
    stream -> IoUtil.read(stream, CharsetUtil.UTF_8)
);

NIO Operations

NIO File Operations

// NIO file operations
public static String readUtf8(Path path);
public static byte[] readBytes(Path path);
public static List<String> readAllLines(Path path, Charset charset);

// NIO write operations
public static Path writeUtf8(Path path, String content);
public static Path write(Path path, byte[] bytes);
public static Path write(Path path, Iterable<String> lines, Charset charset);

Channel Operations

// Channel copying
public static long copy(ReadableByteChannel src, WritableByteChannel dest);
public static long copy(FileChannel src, FileChannel dest);

// Direct memory operations
public static ByteBuffer read(FileChannel channel, long position, int size);

File Watching

File Monitor

// Watch for file changes
public static WatchMonitor watchDir(File dir, WatchKind[] events, Watcher watcher);
public static WatchMonitor watchFile(File file, Watcher watcher);

Utility Methods

File Filtering and Finding

// List files with filters
public static List<File> ls(String path);
public static File[] ls(File file);
public static List<File> listFileNames(File dir, String... suffixes);

// Find files
public static List<File> loopFiles(File file, FileFilter fileFilter);
public static List<File> loopFiles(String path, int maxDepth, FileFilter fileFilter);

Path Utilities

// Path joining and normalization
public static String join(String parent, String... paths);
public static File file(String path);
public static File file(File parent, String... paths);

// Check path types
public static boolean isAbsolutePath(String path);
public static boolean isWindows();
public static boolean isLinux();

Usage Examples:

// List and filter files
List<File> javaFiles = FileUtil.loopFiles("src/main/java", 
    file -> file.getName().endsWith(".java"));

// Path operations
String fullPath = FileUtil.join("home", "user", "documents", "file.txt");
File configFile = FileUtil.file("conf", "application.yml");

// File monitoring
WatchMonitor monitor = FileUtil.watchDir(new File("./logs"), 
    new WatchKind[]{WatchKind.CREATE, WatchKind.MODIFY}, 
    new SimpleWatcher() {
        @Override
        public void onCreate(WatchEvent<?> event, Path currentPath) {
            System.out.println("New file created: " + currentPath);
        }
    });
monitor.start();

All file and I/O operations handle exceptions gracefully and provide both checked and unchecked variants. The utilities support cross-platform file operations and handle path separators, encodings, and resource cleanup automatically.

Install with Tessl CLI

npx tessl i tessl/maven-cn-hutool--hutool-all

docs

additional-utilities.md

bean-object-manipulation.md

collection-utilities.md

core-string-operations.md

cryptographic-operations.md

database-access.md

date-time-handling.md

file-io-operations.md

http-client-operations.md

index.md

json-processing.md

tile.json