คำถามติดแท็ก inputstream

กลไกนามธรรมสำหรับการอ่านสตรีมข้อมูลใน Java

30
ฉันจะอ่าน / แปลง InputStream เป็น String ใน Java ได้อย่างไร
หากคุณมีjava.io.InputStreamวัตถุคุณควรประมวลผลวัตถุนั้นและสร้างStringอย่างไร สมมติว่าฉันInputStreamมีข้อความที่มีข้อมูลตัวอักษรและฉันต้องการแปลงเป็น a Stringดังนั้นตัวอย่างเช่นฉันสามารถเขียนมันลงในไฟล์บันทึกได้ วิธีที่ง่ายที่สุดในการใช้InputStreamและแปลงเป็น a Stringคืออะไร? public String convertStreamToString(InputStream is) { // ??? }
4063 java  string  io  stream  inputstream 

16
การสร้างอาร์เรย์ไบต์จากสตรีม
วิธีการที่ต้องการสำหรับการสร้างอาร์เรย์ไบต์จากอินพุตสตรีมคืออะไร? นี่คือโซลูชันปัจจุบันของฉันกับ. NET 3.5 Stream s; byte[] b; using (BinaryReader br = new BinaryReader(s)) { b = br.ReadBytes((int)s.Length); } มันเป็นความคิดที่ดีกว่าถ้าจะอ่านและเขียนชิ้นของกระแสหรือไม่
913 c#  .net-3.5  inputstream 



12
วิธีการแปลง OutputStream เป็น InputStream?
ฉันอยู่ในขั้นตอนของการพัฒนาที่ฉันมีสองโมดูลและจากที่หนึ่งผมได้รับการส่งออกเป็นสองและหนึ่งซึ่งยอมรับเฉพาะOutputStream InputStreamคุณรู้วิธีการแปลงOutputStreamเป็นInputStream(ไม่ใช่ในทางกลับกันฉันหมายถึงอย่างนี้จริงๆ) ว่าฉันจะสามารถเชื่อมต่อทั้งสองส่วนได้หรือไม่? ขอบคุณ

12
ไบต์ [] ไปยังไฟล์ใน Java
ด้วย Java: ฉันมีbyte[]ที่แสดงถึงไฟล์ ฉันจะเขียนสิ่งนี้ลงไฟล์ได้อย่างไร (เช่น C:\myfile.pdf ) ฉันรู้ว่ามันเสร็จสิ้นแล้วด้วย InputStream แต่ฉันไม่สามารถใช้งานได้
327 java  arrays  file  io  inputstream 

8
InputStream & Output Stream คืออะไร ทำไมและเมื่อไหร่ที่เราจะใช้พวกเขา?
มีคนอธิบายให้ฉันเป็นอะไรInputStreamและOutputStreamเป็นอย่างไร ฉันกำลังสับสนเกี่ยวกับกรณีการใช้งานสำหรับทั้งสองและInputStreamOutputStream หากคุณสามารถใส่ตัวอย่างของรหัสเพื่อไปพร้อมกับคำอธิบายของคุณนั่นจะเป็นสิ่งที่ยอดเยี่ยม ขอบคุณ!

6
วิธีโหลดไฟล์เป็น InputStream หลายวิธี
ความแตกต่างระหว่าง: InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileName) และ InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName) และ InputStream is = this.getClass().getResourceAsStream(fileName) แต่ละคนมีความเหมาะสมที่จะใช้มากกว่าคนอื่นเมื่อใด ไฟล์ที่ฉันต้องการอ่านอยู่ใน classpath เป็นคลาสของฉันที่อ่านไฟล์ คลาสและไฟล์ของฉันอยู่ใน jar เดียวกันและจัดเก็บในไฟล์ EAR และปรับใช้ใน WebSphere 6.1
216 java  inputstream 


16
จับตัวละครจากอินพุตมาตรฐานโดยไม่ต้องรอให้กด
ฉันไม่สามารถจำได้ว่าฉันทำเช่นนี้เพราะมันเกิดขึ้นไม่บ่อยนักสำหรับฉัน แต่ใน C หรือ C ++ วิธีที่ดีที่สุดในการอ่านอักขระจากอินพุตมาตรฐานคืออะไรโดยไม่ต้องรอขึ้นบรรทัดใหม่ (กด Enter) อีกทั้งยังเป็นการดีที่มันจะไม่สะท้อนตัวอักษรที่ป้อนไปยังหน้าจอ ฉันแค่อยากจะกดแป้นพิมพ์โดยไม่ส่งผลต่อหน้าจอคอนโซล
174 c++  c  inputstream 

9
จะโคลน InputStream ได้อย่างไร
ฉันมี InputStream ที่ฉันผ่านไปยังวิธีการที่จะทำการประมวลผลบางอย่าง ฉันจะใช้ InputStream เดียวกันในวิธีอื่น แต่หลังจากการประมวลผลครั้งแรก InputStream จะปรากฏขึ้นภายในเมธอด ฉันจะโคลน InputStream เพื่อส่งไปยังวิธีที่ปิดเขาได้อย่างไร มีวิธีแก้ไขปัญหาอื่นหรือไม่? แก้ไข: วิธีการที่ปิด InputStream เป็นวิธีการภายนอกจาก lib ฉันไม่สามารถควบคุมการปิดได้หรือไม่ private String getContent(HttpURLConnection con) { InputStream content = null; String charset = ""; try { content = con.getInputStream(); CloseShieldInputStream csContent = new CloseShieldInputStream(content); charset = getCharset(csContent); return IOUtils.toString(content,charset); } catch (Exception …
162 java  clone  inputstream 

3
แปลง InputStream เป็น BufferedReader
ฉันกำลังพยายามอ่านไฟล์ข้อความทีละบรรทัดโดยใช้ InputStream จากไดเรกทอรีสินทรัพย์ใน Android ฉันต้องการแปลง InputStream เป็น BufferedReader เพื่อให้สามารถใช้ readLine () ฉันมีรหัสต่อไปนี้: InputStream is; is = myContext.getAssets().open ("file.txt"); BufferedReader br = new BufferedReader (is); บรรทัดที่สามลดข้อผิดพลาดต่อไปนี้: เครื่องหมายหลายอันในบรรทัดนี้ Constructor BufferedReader (InputStream) ไม่ได้ถูกกำหนดไว้ สิ่งที่ฉันพยายามทำใน C ++ จะเป็นเช่น: StreamReader file; file = File.OpenText ("file.txt"); line = file.ReadLine(); line = file.ReadLine(); ... ฉันทำอะไรผิดหรือฉันควรทำอย่างไร ขอบคุณ!

8
เป็นไปได้ไหมที่จะอ่านจาก InputStream ด้วยการหมดเวลา?
โดยเฉพาะปัญหาคือการเขียนวิธีเช่นนี้: int maybeRead(InputStream in, long timeout) โดยที่ค่าส่งคืนจะเหมือนกับ in.read () หากข้อมูลมีให้ใช้งานภายใน 'ระยะหมดเวลา' มิลลิวินาทีและเป็นอย่างอื่น ก่อนที่เมธอดจะส่งคืนเธรดที่เกิดใหม่ใด ๆ จะต้องออก เพื่อหลีกเลี่ยงการขัดแย้งหัวเรื่องที่นี่ java.io.InputStream ตามที่ Sun (รับรอง Java เวอร์ชันใด ๆ ) โปรดทราบว่านี่ไม่ง่ายอย่างที่เห็น ด้านล่างนี้คือข้อเท็จจริงบางประการซึ่งได้รับการสนับสนุนโดยตรงจากเอกสารของซัน เมธอด in.read () อาจไม่สามารถอินเตอร์รัปต์ได้ การตัด InputStream ใน Reader หรือ InterruptibleChannel ไม่ได้ช่วยเพราะคลาสเหล่านั้นทั้งหมดสามารถทำได้คือวิธีการโทรของ InputStream ถ้ามันเป็นไปได้ที่จะใช้คลาสเหล่านั้นมันจะเป็นไปได้ที่จะเขียนวิธีแก้ปัญหาที่รันตรรกะเดียวกันโดยตรงบน InputStream เป็นที่ยอมรับเสมอสำหรับ in.available () เพื่อส่งคืน 0 เมธอด in.close () อาจบล็อกหรือไม่ทำอะไรเลย ไม่มีวิธีทั่วไปในการฆ่าเธรดอื่น

5
คุณสามารถอธิบายกระบวนการเชื่อมต่อ HttpURLConnection ได้หรือไม่?
ฉันกำลังใช้HTTPURLConnectionเพื่อเชื่อมต่อกับบริการเว็บ ฉันรู้วิธีใช้HTTPURLConnectionแต่ฉันอยากเข้าใจว่ามันทำงานอย่างไร โดยทั่วไปฉันต้องการทราบสิ่งต่อไปนี้: จุดใดที่HTTPURLConnectionพยายามสร้างการเชื่อมต่อกับ URL ที่ระบุ จุดใดที่ฉันสามารถรู้ได้ว่าฉันสามารถสร้างการเชื่อมต่อได้สำเร็จ กำลังสร้างการเชื่อมต่อและส่งคำขอจริงในขั้นตอนเดียว / วิธีการโทรหรือไม่? วิธีการคืออะไร? คุณสามารถอธิบายการทำงานของgetOutputStreamและgetInputStreamในระยะของคนธรรมดาได้หรือไม่? ฉันสังเกตเห็นว่าเมื่อเซิร์ฟเวอร์ที่ฉันพยายามเชื่อมต่อหยุดทำงานฉันจะได้รับExceptionที่getOutputStream. หมายความว่าHTTPURLConnectionจะเริ่มสร้างการเชื่อมต่อเมื่อฉันเรียกใช้เท่านั้นgetOutputStream? แล้วgetInputStreamล่ะ? เนื่องจากฉันสามารถรับคำตอบได้ที่getInputStreamนั่นหมายความว่าฉันยังไม่ได้ส่งคำขอใด ๆgetOutputStreamเลย แต่เพียงแค่สร้างการเชื่อมต่อ ทำHttpURLConnectionกลับไปยังเซิร์ฟเวอร์เพื่อร้องขอสำหรับการตอบสนองเมื่อฉันเรียกgetInputStream? ฉันถูกต้องหรือไม่ที่จะบอกว่าopenConnectionสร้างวัตถุเชื่อมต่อใหม่ แต่ยังไม่ได้สร้างการเชื่อมต่อ ฉันจะวัดค่าใช้จ่ายในการอ่านและเชื่อมต่อค่าโสหุ้ยได้อย่างไร

2
เราสามารถแปลงอาร์เรย์ไบต์เป็น InputStream ใน Java ได้หรือไม่?
เราสามารถแปลงอาร์เรย์ไบต์เป็น InputStream ใน Java ได้หรือไม่? ฉันดูทางอินเทอร์เน็ต แต่หาไม่เจอ ฉันมีวิธีการที่มี InputStream เป็นอาร์กิวเมนต์ InputStream cphฉันมีการเข้ารหัส base64 ดังนั้นฉันจึงต้องถอดรหัสโดยใช้ BASE64Decoder decoder = new BASE64Decoder(); byte[] decodedBytes = decoder.decodeBuffer(cph); ตอนนี้ฉันจะแปลงdecodedBytesเป็นInputStreamอย่างไร
129 java  base64  inputstream 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.