พยายามที่จะใช้เพื่ออัปโหลดไฟล์ PNG ไปยังเซิร์ฟเวอร์ผ่านทาง AJAX, ถอดปลั๊กไฟล์ codeObject เป็นอ็อบเจ็กต์ที่มีข้อมูลอยู่ในไฟล์ของฉันการตรวจสอบบรรทัดแรกของไฟล์ก่อนอัพโหลดโดยใช้ VI จะทำให้ไฟล์เดียวกันเหมือนกันหลังจากที่อัปโหลดแล้ว ดูเหมือนว่าการเข้ารหัสปัญหาการจัดรูปแบบที่ไหนสักแห่งฉันพยายามใช้ฟังก์ชันเข้ารหัส UTF8 ง่ายๆในข้อมูลไบนารีดิบแล้วใน code. which เดิมให้ฉันออก of. Still ไม่ใช่สิ่งที่ดิบไฟล์ถูกฉันจะเข้ารหัสกระบวนการโหลด ไฟล์เพื่อหลีกเลี่ยงปัญหาการเข้ารหัสดังนั้นไฟล์ที่ได้รับในคำขอเป็นเช่นเดียวกับไฟล์ก่อนที่จะถูกอัปโหลดบางข้อมูลที่เป็นประโยชน์อื่น ๆ ถ้าแทนที่จะใช้ฉันใช้เพื่อให้ได้ข้อมูลไบนารีจะทำงานได้ดี แต่ getAsBinary ทำงานเฉพาะใน Firefox ฉันได้รับการทดสอบนี้ใน Firefox และ Chrome ทั้งใน Mac, รับผลเดียวกันในทั้งสองอัพโหลดแบ็กเอนด์กำลังถูกจัดการโดยโมดูลอัพโหลด NGINX อีกครั้งทำงานบน Mac เซิร์ฟเวอร์และลูกค้าอยู่ในเครื่องเดียวกันเหมือนกัน สิ่งที่เกิดขึ้นกับ ไฟล์ฉันพยายามอัปโหลดใด ๆ ฉันเพิ่งเลือก PNG เพราะเป็นตัวอย่างที่เห็นได้ชัดที่สุด Sep 15 11 ที่ 13 07 ต่อไปนี้เป็นคำตอบ late แต่ completeFileReader วิธีการสนับสนุน เลิกใช้ Don t ใช้มันไม่มีใน W3C File API ทำงาน Draft. NB โปรดทราบว่า File เป็นชนิดของโครงสร้าง Blob ขยาย. Mozillaยังคงใช้ readAsBinaryString และอธิบายไว้ใน MDN FileApi documentation. The เหตุผลที่อยู่เบื้องหลัง readAsBinaryString deprecation อยู่ในของฉัน ความคิดเห็นต่อไปนี้มาตรฐานสตริง JavaScript เป็น DOMString ซึ่งยอมรับอักขระ UTF-8 เท่านั้นไม่ใช่ข้อมูลไบนารีแบบสุ่มดังนั้นอย่าใช้ readAsBinaryString ซึ่งไม่ปลอดภัยและสอดคล้องกับ ECMAScript เลยเราทราบดีว่าสตริง JavaScript ไม่ควรเก็บไบนารีไว้ ข้อมูล แต่ Mozilla บางอย่างอาจเป็นอันตรายในความเห็นของฉัน Blob และ ArrayBuffer และ ArrayBuffer ที่ยังไม่ได้ใช้ แต่ไม่จำเป็น StringView ถูกคิดค้นเพื่อจุดประสงค์หนึ่งให้ใช้ข้อมูลไบนารีบริสุทธิ์โดยไม่มีข้อ จำกัด สตริง UTF-8 อัปโหลดการสนับสนุน มีตัวเลือกการเชิญชวนต่อไปนี้ options. sendAsBinary ไม่ใช่มาตรฐานและอาจไม่ได้รับการสนับสนุนใน Chrome ดังนั้นคุณมีหลาย options. send ของ fileObject มีความซับซ้อนมากขึ้นในการจัดการคุณจะต้องแยกต่างหากส่งให้ แต่ขอแนะนำ approach. send ของ fileObject มันสร้างค่าใช้จ่ายที่ไร้ประโยชน์และแฝงการบีบอัดต้องใช้ขั้นตอนการบีบอัดบนฝั่งเซิร์ฟเวอร์ แต่ง่ายต่อการจัดการเป็นสตริงใน Javascript. Being ไม่ได้มาตรฐานและ sendAsBinary ของ fileObject. The วิธีที่ดีที่สุดในการส่ง เนื้อหาไบนารีเช่นในไฟล์อัปโหลดใช้ ArrayBuffers หรือ Blobs ใน conjuncton กับเมธอดส่งอย่างไรก็ตามถ้าคุณต้องการส่งข้อมูลดิบที่เข้มงวดให้ใช้เมธอด sendAsBinary แทนหรืออาร์เรย์แบบ StringView Non ที่พิมพ์แล้ว superclass. i ขอโทษด้วยการขุด อีกครั้งเพียงต้องการเพิ่มว่าอาจเป็นวิธีที่ง่ายที่สุดในการส่งข้อมูลไบนารี ฯลฯ ไฟล์ PDF จะผ่านและ onload handler แทนเพียงแค่ส่งที่ไม่สะอาด base64 เข้ารหัสสตริงที่คุณทำความสะอาด i. t ขึ้นครั้งแรกกับ regex บางอย่างเช่น 1 และส่งจริง base64 ไปยังเซิร์ฟเวอร์ที่จะถอดรหัส user1299518 19 สิงหาคมที่ 14 11 เนื่องจากทุกคนสามารถแก้ไข MDN ฉันอาจ wouldn t ใช้เป็นแหล่ง Chris Anderson 22 พฤษภาคม 15 ที่ 17 40 vlzvl คุณเป็นวีรบุรุษของฉัน Yster 16 พ. ย. 52 ที่ 16 48 user1299518, ใช้ดีกว่า,, 2 1 ไม่ตรงกับ MrKsn Apr 6 16 at 17 12.The วิธีที่ดีที่สุดในเบราว์เซอร์ที่สนับสนุนมันคือการส่งไฟล์เป็นหยด, หรือใช้ FormData ถ้าคุณต้องการแบบฟอร์มหลายรูปแบบคุณไม่จำเป็นต้อง FileReader สำหรับที่ทั้งง่ายและมีประสิทธิภาพมากกว่าการพยายามอ่านข้อมูลถ้าคุณต้องการส่งแบบฟอร์มข้อมูลแบบ multipart โดยเฉพาะคุณสามารถใช้วัตถุ FormData ได้ นอกจากนี้คุณยังสามารถส่งข้อมูลได้โดยตรงแทนการใช้รูปแบบข้อมูลแบบหลายส่วนดูเอกสารประกอบทั้งหมดนี้จำเป็นต้องมีการเปลี่ยนแปลงด้านเซิร์ฟเวอร์ด้วยเช่นกันสำหรับการสนับสนุนเบราว์เซอร์โปรดดูที่เบราว์เซอร์ส่วนใหญ่รวมถึง IE 10.readAsBinaryString กล่าวว่าข้อมูลต้อง จะแสดงเป็นสตริงไบนารีที่. ทุกไบต์ถูกแสดงด้วยจำนวนเต็มในช่วง 0 255.JavaS cript เดิมไม่ได้มีแบบไบนารีจนกว่าจะสนับสนุน WebGL ของ ECMAScript 5 สำหรับรายละเอียด Typed Array ด้านล่างซึ่งถูกแทนที่โดย ArrayBuffer ของ ECMAScript 2015 และพวกเขาจึงไปพร้อมกับ String ด้วยการรับประกันว่าอักขระที่เก็บอยู่ใน String จะอยู่ภายนอก ช่วง 0 255 พวกเขาอาจได้ไปกับอาร์เรย์ของตัวเลขแทน แต่พวกเขา didn t บางทีสตริงขนาดใหญ่มีหน่วยความจำที่มีประสิทธิภาพมากขึ้นกว่าอาร์เรย์ใหญ่ของตัวเลขเนื่องจากตัวเลขเป็นจุดลอยหากคุณอ่านไฟล์ที่เป็นข้อความส่วนใหญ่ ในสคริปต์ตะวันตกส่วนใหญ่เป็นภาษาอังกฤษตัวอย่างเช่นข้อความนั้นจะดูคล้ายข้อความถ้าคุณอ่านไฟล์ที่มีอักขระ Unicode อยู่คุณควรสังเกตความแตกต่างเนื่องจากสตริง JavaScript มีรายละเอียด UTF-16 ด้านล่างและบางส่วน อักขระจะมีค่าสูงกว่า 255 ในขณะที่สตริงไบนารีตามข้อมูลจำเพาะของ File API จะไม่มีค่าใด ๆ เหนือ 255 คุณต้องมีอักขระสองตัวสำหรับไบต์ที่สองของจุดรหัส Unicode ถ้าคุณกำลังอ่านไฟล์ที่ ไม่ข้อความที่ภาพทั้งหมดบางทีคุณอาจจะยังคงได้รับผลที่คล้ายกันมากระหว่าง readAsText และ readAsBinaryString แต่กับ readAsBinaryString คุณรู้ว่ามีชนะ t เป็นความพยายามในการตีความลำดับหลายไบต์เป็นตัวอักษรคุณ don t รู้ว่าถ้าคุณใช้ readAsText เนื่องจาก readAsText จะใช้การกำหนดการเข้ารหัสเพื่อพยายามคิดว่าการเข้ารหัสไฟล์เป็นอย่างไรและจากนั้นทำแผนที่ให้เป็นสตริง UTF-16 ของ JavaScript คุณสามารถดูผลได้ถ้าคุณสร้างไฟล์และเก็บไว้ในสิ่งอื่นที่ไม่ใช่ ASCII หรือ UTF-8 ใน Windows คุณสามารถทำได้ผ่าน Notepad บันทึกเป็นแบบหล่นลงการเข้ารหัสด้วย Unicode โดยที่การดูข้อมูลที่ดูเหมือนจะหมายถึง UTF-16 ฉันแน่ใจว่า Mac OS และ nix editor มีคุณลักษณะคล้ายกัน นี่หน้า sa ที่ทิ้งผลของการอ่านไฟล์ทั้งสอง ways. If ฉันใช้ที่มีการทดสอบ 1 2 3 ไฟล์ที่เก็บไว้ใน UTF-16 นี่คือผลฉัน get. As คุณสามารถดู readAsText ตีความตัวอักษรและดังนั้นฉัน มีความยาว 13 การทดสอบ 1 2 3 และอ่านได้AsBina ryString didn t และฉันได้รับ 28 BOM สองไบต์บวกสองไบต์สำหรับแต่ละอักขระ กับอาร์เรย์การตอบสนอง arrayType ได้รับการสนับสนุนใน HTML 5 สตริง JavaScript เป็น UTF-16 อาจดูเหมือนเป็นคำสั่งที่แปลกไม่ได้เป็นเพียง Unicode ไม่มีสตริง JavaScript คือชุดรหัส UTF-16 ที่คุณเห็นคู่แทนเป็นอักขระ JavaScript แต่ละตัวสองอักขระ แม้ว่าในความเป็นจริงคู่ตัวแทนทั้งหมดเป็นเพียงตัวเดียวโปรดดูลิงก์เพื่อดูรายละเอียด digitalFresh สตริงเป็นข้อมูลไบนารีในขณะที่คุณกำลังแสดงความคิดเห็นผมได้โพสต์ตัวอย่างซึ่งอาจช่วยให้ JavaScript ไม่มีไฟล์ไบนารีและพวกเขาไปกับสตริงด้วยการรับประกันว่าอักขระที่เก็บไว้ในสตริงจะอยู่นอกช่วง 0 255 พวกเขาอาจได้ไปกับ array ของตัวเลขแทน แต่ didn t ตัวอย่างแสดงวิธีการได้รับค่าดิบของตัวอักษรจากสตริง TJ Crowder มิถุนายน 30 10 ที่ 5 09 morpheus เนื่องจากสิ่งนี้เป็น asynchronous สามารถ t โยน ข้อยกเว้นคุณต้องดูที่อินเทอร์เฟซเพื่อดูว่ามีวิธีการแบบอะซิงโครนัสบางอย่างที่รายงานข้อผิดพลาดและแน่นอน FileReader มีข้อผิดพลาดในการนี้เมื่อคุณใช้ URL ของไฟล์ is. null ของโดเมนเอกสารของคุณซึ่งมีแนวโน้มว่าจะปิดคุณออกจากจำนวนมาก ของสิ่งที่ฉัน don t ทราบรายละเอียดที่ฉันไม่เคยทำมัน esp เมื่อ SOP ได้รับมันฉัน m สวยแน่ใจว่ามันขึ้นอยู่กับเบราว์เซอร์อย่างน้อยสำหรับตอนนี้เป็นส่วนหนึ่งของการรักษาความปลอดภัย spec ยังชั่วคราว แต่ฉัน wouldn t คาดว่าจะทำงาน TJ Crowder พฤศจิกายน 5 10 ที่ 18 12.Man y ขอบคุณ - ฉันได้ลบความคิดเห็นของฉันเพื่อป้องกันไม่ให้ผู้อื่นหลงผิดโดยการทำให้ฉันดูง่ายเกินไปและขอบคุณสำหรับการโพสต์รายละเอียด - ฉันแน่ใจว่าคนอื่น ๆ จะค้นหาความคิดเห็นของคุณที่เป็นประโยชน์และอ่านบทความนี้เป็นความคิดที่ดี ถ้ามีใครอยู่รอบ ๆ ในบริเวณนี้ Brian M Hunt Dec 30 14 at 14 16.Filereader อ่านเป็นไบนารี options. blob URLs สามารถใช้งานได้เกือบทุกที่ที่เราใช้ URLs ปกติวัตถุ File ใน Java Script อ้างอิงไฟล์จริงในระบบไฟล์ Local Filereader อ่านเป็นตัวเลือกไบนารี Carigold Forex Sebenar V3 ถ้าตัวเลือกไบนารีถูกตั้งค่าเป็นไบนารี่ถ้ามีการอ่านส่วนที่เป็นจริงผ่าน FileReader var opts typeof options ตัวเลือกที่ไม่ได้ระบุ var fileSize ไฟล์นี้สืบทอดคุณสมบัติและวิธีการทั้งหมดจากคลาส Blob แต่เป็นหยดไม่อ้างอิง ไฟล์จริงก็อาจดูเหมือนเป็นเหมือนกันเรามี URL blob อ้างอิงถึงข้อมูล blob. Blob ถูกเก็บไว้ในหน่วยความจำหรือระบบแฟ้มขึ้นอยู่กับเบราเซอร์และขนาดหยดหยดสามารถใช้เช่น fil e ที่เราใช้ไฟล์ แต่ยังมีเวอร์ชัน API แบบซิงโครนัสเพื่อให้สามารถใช้งานได้ใน Web Workers Filereader อ่านเป็นตัวเลือกไบนารีกราฟฟิครูทกราฟฟิคนอลโฟร์สเกล 18 มิถุนายน 2553 FileReader มีตัวเลือกสี่ตัวสำหรับการอ่านไฟล์แบบ asynchronously - มี 21 เม. ย. 2015 อินเตอร์เฟซ FileReader ซึ่งมีวิธีการอ่านแฟ้มหรือแบบหยดและแบบ URL สำหรับใช้กับข้อมูลไบนารีเช่นไฟล์เพื่อให้สามารถเป็นตัวเลือก BlobPropertyBag หน้าต่างเปิดเผยอินเตอร์เฟซผู้ใช้งาน Blob คุณสามารถใช้ หากตัวเลือกไบนารีถูกตั้งค่าเป็นไบนารี่หากมีการอ่านส่วนที่เป็นจริงผ่าน FileReader var opts typeof options ตัวเลือกที่ไม่ได้ระบุ var fileSize URL หยดไปยังหยดสามารถรับได้โดยใช้อ็อบเจ็กต์ Object Object. Proprietary เทรดดิ้งเทรดดิ้งตัวเลือก Trading. Kidane ตัวเลือกแม้ว่าวัตถุ File และวัตถุ Blob จะแตกต่างกันพวกเขาเปิดเผยวิธีการและคุณสมบัติเดียวกันอ่าน Filitableader เป็นตัวเลือกไบนารี Additio FileReader มีสี่ตัวเลือกสำหรับการอ่านไฟล์, asynchronously - คุณสมบัติผลลัพธ์จะมีหยดเป็นอย่างมาก ใหญ่เช่นสามารถมีข้อมูลเสียงและวิดีโอได้เช่นกัน Graphiques Forex Taux De เปลี่ยน Gu Guine ถ้าตัวเลือกไบนารีถูกตั้งค่าเป็นไบนารีถ้า chunks จริงจะถูกอ่านผ่าน FileReader var opts typeof options ตัวเลือกที่ไม่ได้ระบุ var fileSize พวกเขาสามารถสร้างขึ้นแบบไดนามิกและใช้ URL หยดที่พวกเขาสามารถ ใช้เป็นไฟล์ได้ Blob มีขนาดและประเภท MIME เหมือนกับไฟล์ที่มี Blob สามารถใช้เช่นไฟล์ได้ทุกที่ที่เราใช้ไฟล์ แต่ยังมี API แบบซิงโครนัสเพื่อให้สามารถใช้งานได้ใน Web Workers Filereader อ่านว่า ไบนารีตัวเลือก Camarilla Fibonacci เครื่องคิดเลข Forex เนื้อหาของหยดสามารถอ่านได้เป็นบัฟเฟอร์อาร์เรย์และดังนั้นจึงทำให้ blobs มีประโยชน์มากในการจัดเก็บข้อมูลไบนารีที่เรามี URL ไฟล์ referen cing ไปยังแฟ้มจริงในระบบแฟ้มในท้องถิ่น Filereader อ่านเป็นตัวเลือกไบนารีไม่มีทางที่จะสร้างวัตถุ File บางอ้างอิง Java Script API กลับวัตถุแฟ้ม 15 พฤษภาคม 2012 ชนิด FileReader มีงานเดียวที่จะอ่านข้อมูลจากแฟ้มและจัดเก็บ มันส่งกลับเนื้อหาไฟล์เป็น ArrayBuffer ที่ดีสำหรับข้อมูลไบนารีเช่น Data URI บางครั้งเรียกว่า URLs ข้อมูลเป็นตัวเลือกที่น่าสนใจถ้า yo Blob สามารถมีขนาดใหญ่มากเช่นสามารถมีข้อมูลเสียงและวิดีโอได้มากเกินไปวัตถุ blob แสดงถึง chuck bytes ที่เก็บข้อมูลของไฟล์อ่านข้อมูลเป็นตัวเลือกไบนารีส่วนเกี่ยวกับข้อกำหนดและการใช้งาน REQ ครอบคลุมแรงจูงใจที่อยู่เบื้องหลังไฟล์ Powerpoint Profesionales De Forex File นี้สามารถเรียกค้นจากออบเจ็กต์ File List ที่ส่งคืนมาจากการที่ผู้ใช้เลือกไฟล์โดยใช้ข้อสรุป Forex Blocks มีประโยชน์มากในขณะที่ทำงานกับไฟล์ระยะไกลแบบไบนารี Forex Divisas Conversion Dollar Euro API นี้ออกแบบมาเพื่อใช้ร่วมกับ APIs และองค์ประกอบอื่น ๆ บนเว็บแพลตฟอร์มไม่มี ขอตัวอย่างเช่นถ้าคุณต้องการแสดงความคิดเห็นเกี่ยวกับเอกสารนี้โปรดส่งไปที่ public-webapps w3 subscribe, archives สิ่งพิมพ์เป็น Working Draft ไม่ได้กล่าวอ้างถึงการรับรองโดย Membership. Class BufferedReader. อ่านข้อความจากอินพุตตัวละคร, buffering อักขระเพื่อให้การอ่านที่มีประสิทธิภาพของตัวอักษรอาร์เรย์และเส้นขนาดบัฟเฟอร์อาจจะระบุหรือขนาดเริ่มต้นอาจจะใช้ค่าเริ่มต้นมีขนาดใหญ่พอสำหรับวัตถุประสงค์ส่วนใหญ่โดยทั่วไปแต่ละอ่านคำขอที่ทำจากเครื่องอ่าน ทำให้เกิดการร้องขอการอ่านที่สอดคล้องกันที่จะทำจากตัวละครหลักหรือกระแสไบต์ดังนั้นจึงควรที่จะห่อ BufferedReader รอบเครื่องอ่านใด ๆ ที่การดำเนินการอ่านอาจมีราคาแพงเช่น FileReaders และ InputStreamReaders ตัวอย่างเช่นจะบัฟเฟอร์ข้อมูลจากไฟล์ที่ระบุ buffering คำสั่งอ่านหรือ readLine แต่ละครั้งอาจทำให้ไบต์ถูกอ่านจากไฟล์แปลงเป็นอักขระแล้วส่งคืนซึ่งอาจไม่มีประสิทธิผลมากนัก ograms ที่ใช้ DataInputStreams สำหรับการป้อนข้อความสามารถแปลโดยการแทนที่ DataInputStream แต่ละอันด้วย BufferedReader. Field ที่เหมาะสม FileFields สืบทอดมาจาก class. Constructor Summary. Constructor และ DescriptionCreates กระแสบัฟเฟอร์บัฟเฟอร์บัฟเฟอร์ที่ใช้บัฟเฟอร์อินเทอร์เฟซขนาดดีฟอลต์ สร้างกระแสบัฟเฟอร์บัฟเฟอร์บัฟเฟอร์ที่ใช้บัฟเฟอร์อินพุตของขนาดที่ระบุสร้างอินพุตบัฟเฟอร์บัฟเฟอร์บัฟเฟอร์ซึ่งใช้บัฟเฟอร์อินพุตที่มีค่าดีฟอลต์รายละเอียดวิธีการอ่านอักขระเดี่ยวอ่านได้ในคลาส Reader Returns อักขระที่อ่าน เป็นจำนวนเต็มในช่วง 0 ถึง 65535 0x00-0xffff หรือ -1 ถ้าสิ้นสุดการสตรีมโยน IOException - ถ้ามีข้อผิดพลาด IO เกิดขึ้นอ่านอักขระในส่วนของอาร์เรย์วิธีนี้ใช้ปฏิบัติตามสัญญาทั่วไป ของวิธีการอ่านที่สอดคล้องกันของคลาส Reader เป็นความสะดวกสบายเพิ่มเติมพยายามที่จะอ่านตัวอักษรให้มากที่สุดเท่าที่เป็นไปได้โดยการเรียกซ้ำ ๆ วิธีอ่านของ underlyi การอ่านซ้ำนี้ยังคงดำเนินต่อไปจนกว่าเงื่อนไขข้อใดข้อหนึ่งต่อไปนี้จะกลายเป็นจริงจำนวนตัวอักษรที่ระบุได้รับการอ่านแล้ววิธีการอ่านของสตรีมเริ่มต้นจะส่งกลับ -1 ซึ่งระบุถึงจุดจบของไฟล์หรือวิธีการพร้อมใช้งานของสตรีมต้นแบบ ส่งกลับ false แสดงว่าการร้องขอการป้อนข้อมูลเพิ่มเติมจะ block. If การอ่านครั้งแรกในสตรีมต้นแบบส่งกลับ -1 เพื่อบ่งชี้ถึงจุดจบของแฟ้มแล้ววิธีนี้จะส่งกลับ -1 มิฉะนั้นวิธีนี้จะส่งกลับจำนวนอักขระที่อ่านจริงชั้นเรียนย่อยของคลาสนี้ ได้รับการสนับสนุน แต่ไม่จำเป็นต้องใช้เพื่อพยายามอ่านตัวอักษรให้ได้มากที่สุดเท่าที่จะเป็นไปได้ในรูปแบบเดียวกันโดยปกติวิธีนี้จะใช้อักขระจากบัฟเฟอร์ตัวละครของสตรีมนี้กรอกข้อมูลจากสตรีมตามบรรทัดหากจำเป็น แต่ถ้าบัฟเฟอร์ว่างเปล่า เครื่องหมายไม่ถูกต้องและความยาวที่ร้องขออย่างน้อยมีขนาดใหญ่เป็นบัฟเฟอร์แล้ววิธีนี้จะอ่านอักขระโดยตรงจากกระแสข้อมูลอ้างอิงไปยังอาร์เรย์ที่กำหนดดังนั้นบัฟเฟอร์ซ้ำซ้อน s จะไม่คัดลอกข้อมูลโดยไม่จำเป็นระบุโดยอ่านในคลาสพารามิเตอร์ของผู้อ่าน cbuf - บัฟเฟอร์ปลายทางปิด - ออฟเซ็ตที่จะเริ่มจัดเก็บอักขระ len - จำนวนตัวอักษรสูงสุดที่อ่านได้ผลตอบแทนจำนวนตัวอักษรที่อ่านได้หรือ -1 ถ้าจุดสิ้นสุดของ ถึงขีด จำกัด แล้วโยน IOException - หากมีข้อผิดพลาดของ IO เกิดขึ้นอ่านบรรทัดข้อความบรรทัดจะถือว่าถูกยกเลิกโดยหนึ่งในฟีดบรรทัด n การคืนค่าขนส่ง r หรือการคืนค่าขนส่งที่ทำตามขั้นตอนโดยทันทีโดยใช้การป้อนข้อมูลบรรทัด สายอักขระที่มีเนื้อหาของบรรทัดโดยไม่รวมอักขระการสิ้นสุดของเส้นหรือเป็นโมฆะถ้าสิ้นสุดการสตรีมโยน IOException - ถ้ามีข้อผิดพลาดเกี่ยวกับ IO เกิดขึ้นดูเพิ่มเติมนอกจากนี้ข้ามไปในคลาสพารามิเตอร์ของผู้อ่าน n - จำนวนของ ตัวอักษรที่จะข้ามกลับจำนวนของตัวอักษรที่ข้ามไปจริงโยน IllegalArgumentException - ถ้า n เป็นค่าลบ IOException - ถ้ามีข้อผิดพลาด IO เกิดขึ้นอ่านว่าสตรีมนี้พร้อมอ่านแล้วหรือไม่ โปรดทราบว่าการคืนค่า false ไม่ได้เป็นการรับประกันว่าการอ่านครั้งต่อไปจะเป็นไปได้หรือไม่ถ้าไม่ได้ระบุว่าไม่ได้เป็นจริง block โยน IOException - หากมีข้อผิดพลาด IO เกิดขึ้นไม่ว่าสตรีมนี้จะสนับสนุนการทำเครื่องหมายหรือไม่ก็ตามเครื่องหมาย Oversrides ที่สนับสนุนในคลาส Reader คืน true ถ้าและเมื่อสตรีมนี้สนับสนุนการทำเครื่องหมายเท่านั้นหมายเหตุตำแหน่งปัจจุบันในสตรีมการโทรที่เกิดขึ้น การรีเซ็ตจะพยายามเปลี่ยนตำแหน่งของสตรีมไปที่จุดนี้เครื่องหมายแทนที่ในคลาสพารามิเตอร์อ่าน readAheadLimit - จำกัด จำนวนอักขระที่อาจอ่านขณะที่ยังคงรักษาเครื่องหมายไว้พยายามที่จะรีเซ็ตสตรีมหลังจากอ่านอักขระที่มีค่าไม่เกินขีด จำกัด นี้หรือเกินกว่า อาจล้มเหลวค่าขีด จำกัด ที่ใหญ่กว่าขนาดของบัฟเฟอร์อินพุตจะทำให้บัฟเฟอร์ใหม่ถูกปันส่วนซึ่งมีขนาดไม่น้อยกว่าขีด จำกัด ดังนั้นค่าที่มากเกินไป ld ใช้ด้วยความระมัดระวังโยน IllegalArgumentException - ถ้า ReadAheadLimit คือ IOException - หากเกิดข้อผิดพลาด IO เกิดการรีเซ็ตสตรีมไปเป็นเครื่องหมายล่าสุดทำ Overrides ในคลาส Reader โยน IOException - ถ้าสตรีมไม่เคยถูกทำเครื่องหมายหรือถ้าเครื่องหมายถูก invalidated. Closes กระแสและเผยแพร่ทรัพยากรระบบใด ๆ ที่เกี่ยวข้องกับมันเมื่อสตรีมถูกปิดอ่านต่อพร้อมทำเครื่องหมายรีเซ็ตหรือข้าม invocations จะโยน IOException การปิดสตรีมปิดก่อนหน้านี้ไม่มีผลกรุณาส่งข้อผิดพลาดหรือคุณลักษณะ สำหรับเอกสารอ้างอิง API และเอกสารสำหรับนักพัฒนาซอฟต์แวร์เพิ่มเติมโปรดดูที่เอกสาร Java SE เอกสารนี้ประกอบไปด้วยรายละเอียดเพิ่มเติมคำอธิบายที่มุ่งเน้นนักพัฒนาซอฟต์แวร์ด้วยภาพรวมแนวคิดคำจำกัดความของข้อกำหนดการแก้ปัญหาและตัวอย่างรหัสงาน 1993, 2016, Oracle และ บริษัท ในเครือสงวนลิขสิทธิ์ การใช้งานอยู่ภายใต้ข้อกำหนดสิทธิการใช้งานนอกจากนี้โปรดดูนโยบาย redistribution ของเอกสารการใช้สคริปต์ในหน้านี้ติดตามการเข้าชมหน้าเว็บ แต่ไม่ได้ เปลี่ยนเนื้อหาใด ๆ ก่อนที่จะอธิบายความแตกต่างเฉพาะระหว่าง FileInputStream และ FileReader ใน Java ฉันต้องการระบุความแตกต่างพื้นฐานระหว่าง InputStream และ Reader ใน Java และเมื่อใช้ InputStream และเมื่อใดที่จะไปสำหรับ Reader Actually ทั้งสอง InputStream และ Reader เป็น abstractions ในการอ่านข้อมูลจากซอร์สโค้ดซึ่งสามารถเป็นไฟล์หรือซ็อกเก็ตได้ แต่ความแตกต่างหลักระหว่าง InputStream คือการอ่านข้อมูลไบนารีในขณะที่ Reader ใช้ในการอ่านข้อมูลแบบข้อความอักขระ Unicode อย่างแม่นยำดังนั้นอะไรคือความแตกต่าง ระหว่างไบนารีและข้อมูลข้อความดีทุกอย่างที่คุณอ่านเป็นไบต์เป็นหลัก แต่การแปลงไบต์เป็นข้อความคุณต้องใช้รูปแบบการเข้ารหัสตัวอักษรชั้น Reader ใช้การเข้ารหัสอักขระเพื่อถอดรหัสไบต์และอักขระที่ส่งกลับไปยังผู้โทรผู้อ่านสามารถใช้การเข้ารหัสอักขระเริ่มต้นของแพลตฟอร์มได้ ซึ่งโปรแกรม Java ของคุณกำลังทำงานหรือยอมรับวัตถุ Charset หรือชื่อของการเข้ารหัสอักขระในรูปแบบสตริงเช่น UTF-8 แม้จะเป็นหนึ่งในวิธีที่ง่ายที่สุด แนวคิดจำนวนมากนักพัฒนา Java ทำผิดพลาดในการไม่ระบุการเข้ารหัสอักขระในขณะที่อ่านไฟล์ข้อความหรือข้อมูลข้อความจากซ็อกเก็ตโปรดจำไว้ว่าถ้าคุณไม่ระบุการเข้ารหัสที่ถูกต้องหรือโปรแกรมของคุณไม่ได้ใช้การเข้ารหัสตัวอักษรที่มีอยู่แล้วในโปรโตคอลเช่นการเข้ารหัสที่ระบุไว้ใน เนื้อหาบางประเภทสำหรับไฟล์ HTML และการเข้ารหัสแสดงในส่วนหัวของไฟล์ XML คุณอาจไม่สามารถอ่านข้อมูลทั้งหมดได้อย่างถูกต้องอักขระบางตัวที่ไม่มีอยู่ในการเข้ารหัสเริ่มต้นอาจเกิดขึ้นได้เมื่อเล็กนิดหน่อยเมื่อคุณทราบความแตกต่างพื้นฐานระหว่างสตรีมและผู้อ่าน เข้าใจความแตกต่างระหว่าง FileInputStream และ FileReader ค่อนข้างง่ายทั้งช่วยให้คุณสามารถอ่านข้อมูลจาก File แต่ FileInputStream ใช้อ่านข้อมูลไบนารีในขณะที่ FileReader ใช้อ่านข้อมูลตัวอักษร FileFileReader vs FileInputStream Java เนื่องจาก FileReader ขยาย InputStreamReader ใช้การเข้ารหัสอักขระที่ให้ไว้ คลาสนี้หรืออื่น ๆ การเข้ารหัสอักขระเริ่มต้นของแพลตฟอร์มโปรดจำไว้ว่า InputStreamReader แคชเข้ารหัสอักขระ ng และการตั้งค่าการเข้ารหัสตัวอักษรหลังจากสร้างอ็อบเจ็กต์จะไม่มีผลกระทบใด ๆ Let s ดูตัวอย่างของวิธีใช้ FileInputStream และ FileReader ใน Java คุณสามารถระบุวัตถุไฟล์หรือสตริงที่มีตำแหน่งที่ตั้งของไฟล์เพื่อเริ่มอ่านข้อมูลอักขระจากไฟล์นี้ คล้ายกับ FileInputStream ซึ่งยังมี constructors ที่คล้ายกันสำหรับการอ่านไฟล์จากแหล่งข้อมูลแม้ว่าควรใช้ BufferedReader เพื่ออ่านข้อมูลจากไฟล์ตัวอย่างแรกของเราคือการอ่านข้อมูลจากไบต์ไฟล์โดย byte ดังนั้นจึงต้องอ่านวิธีการอ่านจาก FileInputStream เป็นวิธีการปิดกั้นที่อ่านไบต์ของข้อมูลหรือบล็อกถ้าไม่มีการป้อนข้อมูลยังมีอยู่มันจะส่งกลับไบต์ข้อมูลต่อไปหรือ -1 ถ้าสิ้นไฟล์ถึงซึ่งหมายความว่าเราอ่านหนึ่งไบต์ในแต่ละรอบของการวนซ้ำและการพิมพ์ มันเป็น Hexadecimal String โดยวิธีการที่มีตัวเลือกในการแปลง InputStream เป็นอาร์เรย์ไบต์เช่นกันในทางกลับกันในตัวอย่างที่ 2 กำลังอ่านข้อมูลตัวอักษรโดยวิธีการอ่านตัวอักษรจาก InputStreamReade r ซึ่งสืบทอดมาจาก FileReader จะอ่านอักขระตัวเดียวและจะส่งกลับค่าตัวอ่านหรือ -1 ถ้ามีการสิ้นสุดของสตรีมแล้วนี่คือเหตุผลที่คุณเห็นข้อความเดียวกันกับที่เขียนในไฟล์เอาต์พุตจากตัวอย่างของเรา 2. นั่นคือทั้งหมดที่ ความแตกต่างระหว่าง FileInputStream และ FileReader ใน Java Bottom line ใช้ FileReader หรือ BufferedReader เพื่ออ่านกระแสข้อมูลอักขระหรือข้อความจากไฟล์และระบุการเข้ารหัสอักขระเสมอใช้ FileInputStream เพื่ออ่านไบต์ข้อมูลดิบจากไฟล์หรือซ็อกเก็ตใน Java
No comments:
Post a Comment