-
ทำไมมันถึงจำเป็น
RandomAccessFile
?RandomAccessFile
เป็นคลาสในแพ็กเกจ Java IO API ซึ่งช่วยให้คุณสามารถนำทาง อ่าน หรือเขียนลงในไฟล์ได้ตามที่คุณต้องการ คุณยังสามารถแทนที่ส่วนที่มีอยู่ของไฟล์ได้ เรากำลังพูดถึงการอัปเดตเนื้อหาของไฟล์ หรือเจาะจงมากขึ้นเกี่ยวกับการอัปเดตส่วนของไฟล์ สิ่งนี้ไม่สามารถทำได้ด้วยFileInputStream
หรือFileOutputStream
แต่RandomAccessFile
จะทำให้คุณมีความสามารถนี้ -
จะเกิดอะไรขึ้นถ้าไฟล์ที่ใช้อ่าน
RandomAccessFile
ไม่มีอยู่?จะ
FileNotFoundException
-
RandomAccessFile
จะเกิดอะไรขึ้นหาก ไม่มีไฟล์ที่เขียน อยู่?มันจะสร้างอันใหม่และเขียนลงไป
-
ทำไมเราถึงต้องการชั้นเรียน
StringReader
?คลาส Java.io.StringReader เป็นสตรีมอักขระที่มีแหล่งที่มาเป็นสตริง
แสดงถึงกระแสของอักขระที่มีแหล่งที่มาเรียกว่าสตริง
-
ทำไมเราถึงต้องการชั้นเรียน
StringWriter
?public class StringWriter
extends Writer
สตรีมอักขระที่รวบรวมเอาต์พุตในบัฟเฟอร์สตริง ซึ่งจากนั้นสามารถนำมาใช้เพื่อสร้างสตริงได้
การปิด StringWriter ไม่มีผลกระทบ วิธีการในคลาสนี้สามารถเรียกได้หลังจากที่กระแสข้อมูลถูกปิดโดยไม่ต้องสร้าง IOException
กระแสของอักขระที่รวบรวมกระแสข้อมูลลงในบัฟเฟอร์ของสตริง ซึ่งสามารถนำมาใช้เพื่อสร้างสตริงได้
-
ทำไมเราถึงต้องการชั้นเรียน
ByteArrayStream
?ดังนั้น
ByteArrayInputStream
และByteArrayOutputStream
.คลาสเหล่านี้โดยพื้นฐานแล้วจะคล้ายกับ
StringReader
และ< code="">. อ่าน เฉพาะ <>StringReader
อักขระ (อักขระ) จากสตริง (String) แต่ByteArrayInputStream
อ่านไบต์จากอาร์เรย์ไบต์ (ByteArray)StringWriter
เขียนอักขระ (อักขระ) ลงในสตริง แต่ByteArrayOutputStream
เขียนไบต์ลงในอาร์เรย์ไบต์ที่อยู่ภายใน เมื่อเขียนลงไปStringWriter
สตริงข้างในจะยาวขึ้น และเมื่อเขียนไปยังByteArrayOutputStream
อาร์เรย์ภายใน ไบต์ก็จะขยายแบบไดนามิกเช่นกัน -
ทำไมเราถึงต้องการชั้นเรียน
PrintStream
? ตั้งชื่อสถานที่ที่ใช้?ชั้นเรียน
PrintStream
ถูกประดิษฐ์ขึ้นเพื่อแสดงข้อมูลในลักษณะที่อ่านง่าย เกือบทั้งหมดประกอบด้วยวิธีการprint
และprintln
. -
ทำไมมันถึงจำเป็น
DynamicProxy
?Java มีคลาสพิเศษ (java.lang.reflect.Proxy) ซึ่งคุณสามารถสร้างวัตถุในขณะรันไทม์ (แบบไดนามิก) ได้โดยไม่ต้องสร้างคลาสแยกต่างหากสำหรับมัน
-
RMI ทำงานอย่างไร?
RMI ย่อมาจาก Remote Method Invokation หรืออีกนัยหนึ่ง RMI เป็นกลไกที่อนุญาตให้อ็อบเจ็กต์ในเครื่อง Java เครื่องหนึ่งสามารถเรียกเมธอดของอ็อบเจ็กต์ในเครื่อง Java อื่นได้ แม้ว่าวิธีการเหล่านั้นจะอยู่บนคอมพิวเตอร์คนละเครื่อง ในประเทศต่าง ๆ และอยู่คนละซีกโลกก็ตาม
Традиционный подход к выполнению codeа на других машинах, разнесенных по сети может смутить из-за своей нудной и склонной к ошибкам реализации. Лучший способ рассмотреть эту проблему состоит в предположении, что некоторые an objectы располагаются на другой машине, и что вы можете посылать messages этим удаленным an objectм и получать результат, How будто они располагаются на вашей локальной машине. Это упрощение в точности является тем, что позволяет делать Удаленный Вызов Методов (RMI) в Java.
Вот статья по созданию собственной реализации RMI: Удаленный вызов методов (RMI)
-
Объекты Howих типов можно передавать по RMI?
Объекты должны имплементировать интерфейс
Serializable
Remote method Invocation — механизм, который позволяет вызывать метод удалённого an object. Согласно ему, все операции по подготовке и передаче данных инкапсулируются в вызываемом методе клиентского an object-заглушки (stub). Сам же вызов метода ничем не отличается от вызова метода обычного локального an object, за небольшим исключением:
- локальные an objectы передаются по значению (копии);
- при передаче удалённого (
Remote
) an object, если он экспортирован, передаётся stub этого an object; - передаваемые an objectы должны быть
Serializable
; - кроме всех прочих исключительных ситуаций, при вызове удалённого метода может возбуждаться исключение
RemoteException
(ошибки маршализации/демаршализации, передачи данных и другие возможные ошибки протокола);
Так же нужно отметить, что при вызове метода мы работаем с удалённым интерфейсом, а не с удалённым классом.
DefNeo
ระดับ
GO TO FULL VERSION