JavaScript · Синтаксис · Початковий рівень
Робота з файлами: читання та запис
Практичні вправи по роботі з файлами JavaScript на Node.js: читання тексту, запис рядків, додавання даних, підрахунок рядків і слів, обробка вмісту файлу і створення простих звітів через модуль fs.
Короткий вступ до теми та пояснення перед вправами (вправи нижче):
Запис і дозапис
#Патерни обробки файлів
#Вправи:
Прочитати весь файл.
#const fs = require("fs");
const fileName = "note.txt";
Рішення
const fs = require("fs");
const fileName = "note.txt";
fs.writeFileSync(fileName, "JavaScript files", "utf8");
const text = fs.readFileSync(fileName, "utf8");
console.log(text);
// або так можна: прочитати файл одразу в console.log
const fs = require("fs");
const fileName = "note.txt";
fs.writeFileSync(fileName, "JavaScript files", "utf8");
console.log(fs.readFileSync(fileName, "utf8"));
Записати рядок у файл.
#const fs = require("fs");
const text = "Повідомлення для файлу";
const fileName = "message.txt";
Рішення
const fs = require("fs");
const text = "Повідомлення для файлу";
const fileName = "message.txt";
fs.writeFileSync(fileName, text, "utf8");
const result = fs.readFileSync(fileName, "utf8");
console.log(result);
Додати рядок у кінець файлу.
#const fs = require("fs");
const fileName = "log.txt";
fs.writeFileSync(fileName, "Start", "utf8");
const newLine = "Next step";
Рішення
const fs = require("fs");
const fileName = "log.txt";
fs.writeFileSync(fileName, "Start", "utf8");
const newLine = "Next step";
fs.appendFileSync(fileName, "\n" + newLine, "utf8");
const text = fs.readFileSync(fileName, "utf8");
console.log(text);
Порахувати рядки у файлі.
#const fs = require("fs");
const fileName = "tasks.txt";
Рішення
const fs = require("fs");
const fileName = "tasks.txt";
fs.writeFileSync(fileName, "Learn\nPractice\nRepeat", "utf8");
const text = fs.readFileSync(fileName, "utf8");
const lines = text.split("\n");
console.log("Кількість рядків:", lines.length);
Знайти найдовше слово.
#const fs = require("fs");
const fileName = "words.txt";
Рішення
const fs = require("fs");
const fileName = "words.txt";
fs.writeFileSync(fileName, "code javascript file student", "utf8");
const text = fs.readFileSync(fileName, "utf8");
const words = text.split(" ");
let longest = words[0];
for (const word of words) {
if (word.length > longest.length) {
longest = word;
}
}
console.log(longest);
Записати список покупок.
#const fs = require("fs");
const products = ["хліб", "молоко", "сир"];
const fileName = "shopping.txt";
Рішення
const fs = require("fs");
const products = ["хліб", "молоко", "сир"];
const fileName = "shopping.txt";
const text = products.join("\n");
fs.writeFileSync(fileName, text, "utf8");
const result = fs.readFileSync(fileName, "utf8");
console.log(result);
Сума чисел із файлу.
#const fs = require("fs");
const fileName = "numbers.txt";
Рішення
const fs = require("fs");
const fileName = "numbers.txt";
fs.writeFileSync(fileName, "5 10 15 20", "utf8");
const text = fs.readFileSync(fileName, "utf8");
const numbers = text.split(" ");
let total = 0;
for (const number of numbers) {
total += Number(number);
}
console.log("Сума:", total);
Фільтр рядків за символом.
#const fs = require("fs");
const fileName = "emails.txt";
const resultFile = "valid_emails.txt";
Рішення
const fs = require("fs");
const fileName = "emails.txt";
const resultFile = "valid_emails.txt";
fs.writeFileSync(fileName, "[email protected]\nhello\[email protected]\ntest", "utf8");
const text = fs.readFileSync(fileName, "utf8");
const lines = text.split("\n");
const validLines = [];
for (const line of lines) {
if (line.includes("@")) {
validLines.push(line);
}
}
fs.writeFileSync(resultFile, validLines.join("\n"), "utf8");
const result = fs.readFileSync(resultFile, "utf8");
console.log(result);
Перезаписати файл у верхньому регістрі.
#const fs = require("fs");
const fileName = "text.txt";
Рішення
const fs = require("fs");
const fileName = "text.txt";
fs.writeFileSync(fileName, "hello file", "utf8");
let text = fs.readFileSync(fileName, "utf8");
text = text.toUpperCase();
fs.writeFileSync(fileName, text, "utf8");
const result = fs.readFileSync(fileName, "utf8");
console.log(result);
Звіт із кількістю слів.
#const fs = require("fs");
const articleFile = "article.txt";
const reportFile = "report.txt";
Рішення
const fs = require("fs");
const articleFile = "article.txt";
const reportFile = "report.txt";
fs.writeFileSync(articleFile, "JavaScript helps practice file reading and writing", "utf8");
const text = fs.readFileSync(articleFile, "utf8");
const words = text.trim().split(/\s+/);
const count = words.length;
fs.writeFileSync(reportFile, `Кількість слів: ${count}`, "utf8");
const result = fs.readFileSync(reportFile, "utf8");
console.log(result);