
fs.writeFileSync('data/myfile.txt', 'Hello'): יוצר את הקובץ, או דורס אותו אם הוא כבר קיים.\r\n, שני תווים: carriage return ו-line feed. המרצה מסביר שמקורם של שני התווים בהרגל של מכונת הכתיבה, ושהם נשמרו גם במחשבים. בכתיבה של \n בלבד חלק מהמערכות לא יזהו שורה חדשה.fs.appendFileSync מוסיף לסוף הקובץ. אם לא מוסיפים \r\n, הטקסט החדש ייכתב באותה שורה.fs.readFileSync('data/myfile.txt', 'utf-8') מחזיר את התוכן כמחרוזת. הקידוד utf-8 (יוניקוד) תומך בעברית, בערבית ובשפות נוספות. הקידוד ASCII תומך רק באנגלית, ולכן לא מתאים לטקסט בעברית.הטקסט המלא של הדקות הראשונות בהרצאה «קריאה וכתיבה לקובץ ב-NodeJS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בסרטון הקודם ראינו איך אנחנו יכולים לבצע כל מיני פעולות על קבצים ותיקיות. בסרטון הזה אנחנו הולכים לראות איך אנחנו הולכים לכתוב ולקרוא מקבצים, אבל נתחיל עם השיטה הפשוטה שהיא שיטה סינכרונית.
אז יש לנו את ה-file.system, יש לנו כאן data, תיקיה שאין בה כלום כרגע, ואנחנו רוצים fs, ויש לנו את הפונקציה writefile.writefile.
רק מהשם שלה אפשר להבין שהיא פונקציה אסינכרונית, ואם אנחנו רוצים את הגרסה האסינכרונית זה writefile.sync. הדבר הראשון שהוא אומר לי, ותגיד, איזה נתיב אתה רוצה לכתוב?
בואו נכתוב לתוך תיקיית data לקובץ שנקרא myfile.txt ואז הוא אומר לי תגיד מה המחרוזת או הדאטה שאתה רוצה לכתוב לתוך הקובץ הזה? בואו נכתוב Hello והכל. נריץ, יש לנו node-app, go, הנה אני רואה, קראתי לו file, file, רציתי לקרוא לו myfile, טעות, נריץ, והנה myfile, הלו, מה קורה אם אני רוצה לכתוב עוד שורה?
האם אנחנו יכולים לרשום פה this is the second line בצורה כזאת? בואו נריץ, נראה מה קורה, נסתכל על הקובץ, דא ראס, אם אנחנו משתמשים ב-Write File Sync, אז הוא דורס כל פעם את הקובץ הקודם.
אוקיי, אז איך אנחנו בכל זאת יכולים בבת אחת לכתוב את זה? אז יש לנו אפשרות לבצע פה איזשהו Enter. אנחנו יכולים לרשום פה backslash r ו-backslash n.
Enter האמיתי זה שני תווים, backslash r ואחר כך backslash n ולא רק backslash n. אם אתם כותבים רק backslash n יש מערכות שינסו לקרוא את הקובץ ולא יבינו שזה באמת enter.
אם אתם רושמים backslash r ו-backslash n כל המערכות ידעו שזה enter אמיתי. ה-enter האמיתי הוא שני תווים, יש לזה איזו משמעות היסטורית של מכונת כתיבה.
זה נקרא carriage return וזה נקרא line feed. carriage return זה להחזיר את ה-carriage, כן, את הדבר הזה של המכונת כתיבה להתחלה, ו-line feed זה להזרים לו קצת נייר, כלומר להזיז ידית כזאת שהנייר יוזרם למכונת כתיבה, ובגלל מחשבים נוצרו לא הרבה אחרי שהשתמשו במכונת כתיבה, אז אמרו, אוקיי, כנראה שבמחשב זה גם צריך
להיות שני תווים, ואז ה-enter נהיה שני תווים מאז ועד היום. יש לנו Node-up, בואו נריץ, נסתכל על הקובץ, והנה הצלחנו לבצע Enter. עכשיו, יש לנו אפשרות גם לרשום 0.appendfile במקרה הזה, סינק appendfile בו תוסיף לסוף הקובץ דאטה מסוים.
בואו נלך שוב פעם ל-myfile.txt וניתן לו את הדאטה הנוסף. This is another line good אבל השאלה היא האם אוטומטית הוא יהיה בשורה חדשה או בהמשך של השורה הקודמת בואו נבדוק את זה נסתכל על הקובץ ונראה this is another line ולכן כדאי היה לנו כאן לרשום גם כן backslash r backslash n בכדי שבאמת זאת תהיה שורה אמיתית עם enter בסוף
בואו נבדוק עכשיו את הקובץ Hello this is the second line this is another line והנה יש לנו עכשיו אפשרות לכתוב לקובץ חדש ולדרוס כל קובץ אחר קיים אם קיים, או להוסיף לקובץ.
הדבר הבא שאנחנו רוצים לעשות זה לקרוא מהקובץ. אם אנחנו עושים את זה בשיטה סינכרונית זה מאוד פשוט, מפני שהפונקציה פשוט תחזיר לנו את התוכן של הקובץ.
אז בואו נייצר פה משתנה שנקרא FileContent ונלך ל-0.ReadFileSync,