Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to read a file in zig?

Tags:

zig

How can I read a file in zig, and run over it line by line?

I did found os.File.openRead, but it seems old cause it says that container 'std.os' has no member called 'File'.

like image 869
clankill3r Avatar asked Sep 14 '25 15:09

clankill3r


1 Answers

std.io.reader.readUntilDelimiterOrEof lets your read any std.io.reader line by line. You usually get the reader of something like a file by calling it’s reader() method. So for example:

var file = try std.fs.cwd().openFile("foo.txt", .{});
defer file.close();

var buf_reader = std.io.bufferedReader(file.reader());
var in_stream = buf_reader.reader();

var buf: [1024]u8 = undefined;
while (try in_stream.readUntilDelimiterOrEof(&buf, '\n')) |line| {
    // do something with line...
}

The std.io.bufferedReader isn’t mandatory but recommended for better performance.

like image 194
slier Avatar answered Sep 17 '25 21:09

slier