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'
.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With