আমি একবারে একটি বড় ফাইল এক লাইনে পড়ার চেষ্টা করছি। আমি কোওরায় একটি প্রশ্ন পেয়েছি যা এই বিষয়টি নিয়ে কাজ করেছে তবে পুরো জিনিসটি এক সাথে ফিট করার জন্য আমি কিছু সংযোগ মিস করছি।
var Lazy=require("lazy");
new Lazy(process.stdin)
.lines
.forEach(
function(line) {
console.log(line.toString());
}
);
process.stdin.resume();
আমি যে বিটটি বের করতে চাই তা হ'ল আমি কীভাবে এই নমুনাটির মতো STDIN এর পরিবর্তে কোনও ফাইল থেকে একবারে একটি লাইন পড়তে পারি।
আমি চেষ্টা করেছিলাম:
fs.open('./VeryBigFile.csv', 'r', '0666', Process);
function Process(err, fd) {
if (err) throw err;
// DO lazy read
}
কিন্তু এটি কাজ করে না আমি জানি যে এক চিমটি আমি পিএইচপি এর মতো কিছু ব্যবহার করে ফিরে যেতে পারি, তবে আমি এটি বের করতে চাই।
আমি মনে করি না যে অন্যান্য জবাবটি কাজ করবে কারণ ফাইলটি যে সার্ভারটিতে এটি চালাচ্ছি তার থেকে মেমরির চেয়ে অনেক বড়।
if (line.length==1 && line[0] == 48) special(line);
node
এর এপিআই ডক্সে
fs.readSync()
। আপনি বাইনারি অক্টেটগুলি একটি বাফারে পড়তে পারেন তবে জাভাস্ক্রিপ্টের স্ট্রিংগুলিতে অনুবাদ এবং EOL এর জন্য স্ক্যান করার আগে বাফারটি পরীক্ষা না করে আংশিক ইউটিএফ -8 বা ইউটিএফ -16 অক্ষরের সাথে ডিল করার সহজ উপায় নেই।Buffer()
টাইপ ফাংশন নেটিভ স্ট্রিং হিসেবে তার দৃষ্টান্ত কাজ করার সমৃদ্ধ সেট হিসাবে নেই, কিন্তু নেটিভ স্ট্রিং বাইনারি ডেটা থাকতে পারে না। আমার কাছে মনে হচ্ছে যে স্বেচ্ছাসেবী ফাইলহ্যান্ডলগুলি থেকে পাঠ্য লাইনগুলি পড়ার অন্তর্নিহিত উপায়ের অভাব হ'ল নোড.জেএসের মধ্যে একটি আসল ফাঁক is