Zig stream file lines with buffered reader
Zig
const std = @import("std");
pub fn main() !void {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
defer _ = gpa.deinit();
const alloc = gpa.allocator();
const file = try std.fs.cwd().openFile("data.txt", .{});
defer file.close();
var buffered = std.io.bufferedReader(file.reader());
const reader = buffered.reader();
var line_no: usize = 0;
while (try reader.readUntilDelimiterOrEofAlloc(alloc, '\n', 1 << 20)) |line| {
defer alloc.free(line);
line_no += 1;
std.debug.print("{d}: {s}\n", .{ line_no, std.mem.trimRight(u8, line, "\r") });
}
}