JavaRush
AI Academy
new
Promotion
Learning
Courses
Tasks
Quizzes
Games
Help
Schedule of nudges
Internship
Community
Users
Forum
Chat
Articles
Activities
Reviews
Subscriptions
Light theme

Lectures

  • Reviews
  • About us
  • CS50
Start
Start learning
Start learning
  • My progress
  • Courses
  • Quest map
  • Lectures
  • CSV nuances — quotes, delimiters, header, BOM

    Go SELF
    47 level,0 lecture
    We break down practical CSV “gotchas” in Go: why naive parsing via strings.Split breaks on commas and newlines inside quotes, how quotes and escaping work ( ""), why a “file line” is not always the same as a CSV record, how to live with delimiters ,/ ;, why you need a header, and how a BOM ( "\ufeff") can silently break the first column name.
    Open
  • encoding/csv — reading and writing via Reader/Writer

    Go SELF
    47 level,1 lecture
    We break down why CSV cannot be reliably parsed with strings.Split, and how to work with the format correctly via the encoding/csv package. We learn to read records with csv.NewReader (modes Read() and ReadAll(), handling io.EOF, settings Comma, TrimLeadingSpace, FieldsPerRecord) and to write with csv.NewWriter (required Flush() and checking Error(), settings Comma and UseCRLF). At the end, we assemble a mini import/export of tasks via io.Reader/ io.Writer and lock in the typical mistakes.
    Open
  • CSV row validation and error reporting

    Go SELF
    47 level,2 lecture
    We break down why successfully reading a CSV via csv.Reader still does not mean the data is valid, how to separate format errors from contract errors, and how to build a human-friendly report: record number ( rowNo), column, value, and reason. We will implement the helper getField, the error type RowError, validations requiredString/ parseInt/ parseBool, and importing from io.Reader while accumulating per-row issues.
    Open
  • Multi-error in practice — errors.Join for imports

    Go SELF
    47 level,3 lecture
    We break down how to make CSV import “friendly”: instead of return on the first issue, we collect errors per row and return one final error via errors.Join. We learn to add context (row/column/value) via our own RowError type with Unwrap, carefully combine []error, unwrap a joined error back into a list, and check causes via errors.Is/ errors.As.
    Open
  • Reliable CSV import/export: Flush/Error, Close()

    Go SELF
    47 level,4 lecture
    Let’s break down how to do reliable CSV export and import in Go: why you must not write directly to "tasks.csv", why you need the temp → rename protocol, how to finish writing correctly via Flush() + checking w. Error(), why it’s important to check the Close() error, and how to add extra insurance with a ".bak" backup. At the end: common mistakes and “checkpoints” where failures actually surface.
    Open
Learn
  • Registration
  • Java course
  • Help with tasks
  • Pricing
Community
  • Users
  • Articles
  • Forum
  • Chat
  • Activities
Company
  • About us
  • Contacts
  • Reviews
  • FAQ
  • Support
JavaRushJavaRush — is an interactive online course for learning Java programming from scratch. It contains 1200 practical tasks with one-click solution checking, the necessary minimum of theory on Java basics, and motivating features that help you complete the course: games, quizzes, interesting projects and articles on effective learning and the career of a Java developer.
Follow us
Язык интерфейса
Русский
English
Українська
"Programmers are not born" © 2026 JavaRush
MastercardVisa
"Programmers are not born" © 2026 JavaRush