اپلیکیشن اندرویدی فلشکارت آموزشی تسلط بر Java NIO.2: ورودی/خروجی کارآمد و سیستم فایل پیشرفته در جاوا
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره تسلط بر Java NIO.2: ورودی/خروجی کارآمد و سیستم فایل پیشرفته در جاوا
موضوع کلی: برنامهنویسی پیشرفته جاوا
موضوع میانی: بهبود کارایی ورودی/خروجی و مدیریت فایلها در جاوا
📋 سرفصلهای دوره
- 1. مقدمهای بر Java NIO.2: چرا به یک API جدید نیاز داشتیم؟
- 2. مقایسه `java.io` و `java.nio`: تفاوتهای کلیدی و مزایا
- 3. آشنایی با مفاهیم اصلی NIO.2: Path، Files و FileSystem
- 4. راهاندازی محیط و اولین برنامه با NIO.2
- 5. معرفی اینترفیس `Path`: جایگزینی مدرن برای کلاس `File`
- 6. ایجاد یک `Path`: روشهای مختلف و بهترین شیوهها
- 7. دریافت اطلاعات اولیه از یک مسیر (Path Information)
- 8. کار با اجزای یک مسیر: نام فایل، والد و ریشه
- 9. نرمالسازی مسیرها با متد `normalize()`
- 10. ترکیب مسیرها: معرفی متد `resolve()`
- 11. ساخت مسیرهای نسبی با متد `relativize()`
- 12. مقایسه مسیرها: `equals()`, `compareTo()`, `startsWith()` و `endsWith()`
- 13. تبدیل بین `Path`, `File`, `String` و `URI`
- 14. مدیریت مسیرهای مطلق و نسبی
- 15. چالشها و نکات کار با مسیرها در سیستمعاملهای مختلف
- 16. مقدمهای بر کلاس `Files`: ابزار همهکاره مدیریت فایل
- 17. بررسی وجود فایلها و دایرکتوریها: `exists()` و `notExists()`
- 18. بررسی دسترسیها: `isReadable()`, `isWritable()` و `isExecutable()`
- 19. بررسی نوع مسیر: `isDirectory()`, `isRegularFile()` و `isSymbolicLink()`
- 20. ایجاد فایلهای جدید با `createFile()`
- 21. ایجاد دایرکتوریهای جدید: `createDirectory()` و `createDirectories()`
- 22. حذف فایلها و دایرکتوریها: متد `delete()` و `deleteIfExists()`
- 23. کپی کردن فایلها با متد `copy()`
- 24. انتقال (تغییر نام) فایلها با متد `move()`
- 25. گزینههای استاندارد کپی و انتقال (`StandardCopyOption`)
- 26. خواندن تمام محتوای یک فایل کوچک به صورت بایت (`readAllBytes`)
- 27. خواندن تمام خطوط یک فایل متنی کوچک (`readAllLines`)
- 28. نوشتن آرایه بایت در یک فایل با متد `write()`
- 29. نوشتن مجموعهای از خطوط در یک فایل متنی
- 30. گزینههای استاندارد باز کردن فایل (`StandardOpenOption`)
- 31. ورودی/خروجی با بافر: استفاده از `newBufferedReader()`
- 32. ورودی/خروجی با بافر: استفاده از `newBufferedWriter()`
- 33. کار با استریمها: `newInputStream()`
- 34. کار با استریمها: `newOutputStream()`
- 35. مقدمهای بر پیمایش دایرکتوریها
- 36. استفاده از `DirectoryStream` برای لیست کردن محتوای دایرکتوری
- 37. فیلتر کردن محتوای دایرکتوری با `DirectoryStream.Filter`
- 38. استفاده از الگوهای Glob برای فیلتر کردن فایلها
- 39. مقدمهای بر پیمایش بازگشتی درخت دایرکتوری
- 40. آشنایی با اینترفیس `FileVisitor`
- 41. پیادهسازی `FileVisitor` برای جستجوی فایلها
- 42. پیمایش درخت فایل با `Files.walkFileTree()`
- 43. کنترل فرآیند پیمایش با `FileVisitResult`
- 44. مدیریت لینکهای سیمبولیک در حین پیمایش
- 45. ایجاد فایلها و دایرکتوریهای موقت
- 46. مقدمهای بر متادیتا و صفات فایل (File Attributes)
- 47. آشنایی با `AttributeView` ها: راهی برای دسترسی به متادیتا
- 48. خواندن صفات پایهای فایل با `BasicFileAttributes`
- 49. درک زمانهای فایل: زمان ایجاد، آخرین دسترسی و آخرین تغییر
- 50. خواندن زمانهای فایل با `readAttributes()`
- 51. تنظیم زمانهای فایل با `setLastModifiedTime()`
- 52. خواندن و تنظیم مالک فایل (`FileOwnerAttributeView`)
- 53. صفات فایل در سیستمهای POSIX: آشنایی با `PosixFileAttributes`
- 54. درک مجوزهای فایل در POSIX (Read, Write, Execute)
- 55. خواندن مجوزهای فایل با `PosixFileAttributeView`
- 56. تنظیم مجوزهای فایل با `setPermissions()`
- 57. صفات فایل در سیستمهای ویندوز: `DosFileAttributes`
- 58. خواندن و تنظیم صفات Read-only, Hidden, System و Archive
- 59. کار با صفات تعریفشده توسط کاربر (`UserDefinedFileAttributeView`)
- 60. مدیریت لینکهای سیمبولیک: `createSymbolicLink()` و `readSymbolicLink()`
- 61. بازگشتی به NIO.1: مفاهیم کانال (Channel) و بافر (Buffer)
- 62. معرفی `Buffer`: کانتینر دادهها
- 63. ویژگیهای کلیدی بافر: Capacity, Limit, Position, Mark
- 64. عملیات اصلی روی بافر: `put()`, `get()`, `flip()`, `rewind()`, `clear()`
- 65. انواع بافرها: `ByteBuffer`, `CharBuffer`, `IntBuffer` و غیره
- 66. بافرهای مستقیم (Direct Buffers) در مقابل بافرهای هیپ (Heap Buffers)
- 67. ایجاد و تخصیص انواع بافرها
- 68. ورودی/خروجی مبتنی بر کانال: معرفی `FileChannel`
- 69. باز کردن `FileChannel` برای خواندن و نوشتن
- 70. خواندن داده از فایل به بافر با `FileChannel.read()`
- 71. نوشتن داده از بافر به فایل با `FileChannel.write()`
- 72. ورودی/خروجی پاشانی/تجمعی (Scatter/Gather I/O)
- 73. انتقال مستقیم داده بین کانالها: `transferTo()` و `transferFrom()`
- 74. فایلهای نگاشتشده در حافظه (Memory-Mapped Files) با `MappedByteBuffer`
- 75. قفلگذاری فایل (File Locking) برای دسترسی همزمان
- 76. مقدمهای بر ورودی/خروجی ناهمزمان (Asynchronous I/O)
- 77. چرا و چه زمانی از AIO استفاده کنیم؟
- 78. دو رویکرد در AIO: `Future` و `CompletionHandler`
- 79. معرفی `AsynchronousFileChannel`
- 80. خواندن ناهمزمان فایل با استفاده از الگوی `Future`
- 81. نوشتن ناهمزمان در فایل با استفاده از الگوی `Future`
- 82. بررسی وضعیت و دریافت نتیجه از یک `Future`
- 83. خواندن ناهمزمان فایل با استفاده از الگوی `CompletionHandler`
- 84. نوشتن ناهمزمان در فایل با استفاده از الگوی `CompletionHandler`
- 85. درک چرخه حیات عملیات ناهمزمان مبتنی بر Callback
- 86. برنامهنویسی شبکه ناهمزمان: `AsynchronousSocketChannel`
- 87. برنامهنویسی شبکه ناهمزمان: `AsynchronousServerSocketChannel`
- 88. مدیریت گروههای کانال ناهمزمان (`AsynchronousChannelGroup`)
- 89. مدیریت Timeout در عملیات AIO
- 90. لغو کردن (Cancelling) عملیات ناهمزمان
- 91. نظارت بر تغییرات سیستم فایل: معرفی `WatchService`
- 92. ثبت یک دایرکتوری برای نظارت با متد `register()`
- 93. انواع رویدادها: `ENTRY_CREATE`, `ENTRY_DELETE`, `ENTRY_MODIFY`
- 94. دریافت و پردازش رویدادهای تغییر با `WatchKey`
- 95. پیادهسازی یک سرویس نظارت بر فایلها در عمل
- 96. کار با سیستمهای فایل فشرده (ZIP/JAR)
- 97. دسترسی به محتوای یک فایل ZIP به عنوان یک FileSystem
- 98. ایجاد و دستکاری فایلهای ZIP با NIO.2
- 99. بهترین شیوهها و الگوهای طراحی برای کار با Java NIO.2
- 100. جمعبندی دوره: ترکیب آموختهها و نگاهی به آینده I/O در جاوا
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.