Чтобы использовать наши собственные объекты класса как ключи в таких коллекциях, как HashMap, Hashtable и т. д., мы должны переопределить оба метода (hashCode () и equals ()), узнав о внутренней работе коллекции. В противном случае это приводит к неправильным результатам, которых мы не ожидаем.
Пока текстовый файл не такой большой, вы должны просто прочитать текстовый файл в массиве, вставить элемент в определенный индекс строки и затем вернуть массив обратно в файл. Я добавил несколько примеров кода - убедитесь, что вы изменили 'file.txt'
, "Your String"
и конкретный lineNumber
.
Отказ от ответственности, я еще не успел проверить приведенный ниже код:
var fs = require('fs');
var data = fs.readFileSync('file.txt').toString().split("\n");
data.splice(lineNumber, 0, "Your String");
var text = data.join("\n");
fs.writeFile('file.txt', text, function (err) {
if (err) return console.log(err);
});
Если вы находитесь в системе Unix, вы, вероятно, захотите использовать sed
, например, чтобы добавить текст в середину файла:
#!/bin/sh
text="Text to add"
file=data.txt
lines=`wc -l $file | awk '{print $1}'`
middle=`expr $lines / 2`
# If the file has an odd number of lines this script adds the text
# after the middle line. Comment this block out to add before
if [ `expr $lines % 2` -eq 1 ]
then
middle=`expr $middle + 1`
fi
sed -e "${middle}a $text" $file
Примечание: выше пример из здесь .
С NodeJS кажется, что есть некоторые пакеты npm , которые могут помочь, например sed.js или заменить .