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

ในการคำนวณอินพุต / เอาท์พุตหรือ I / O หมายถึงการสื่อสารระหว่างระบบประมวลผลข้อมูล (เช่นคอมพิวเตอร์) และโลกภายนอกอาจเป็นมนุษย์หรือระบบประมวลผลข้อมูลอื่น

7
กระบวนการใดที่ใช้ IO ดิสก์ทั้งหมดของฉัน
ถ้าฉันใช้ "top" ฉันจะเห็นว่า CPU ตัวไหนไม่ว่างและกระบวนการใดที่ใช้ CPU ทั้งหมดของฉัน ถ้าฉันใช้ "iostat -x" ฉันสามารถดูไดรฟ์ที่ไม่ว่าง แต่ฉันจะดูได้อย่างไรว่ากระบวนการใดใช้ปริมาณงานทั้งหมดของไดรฟ์

9
I / O แบบไม่ปิดกั้นเร็วกว่า I / O การบล็อกแบบมัลติเธรดจริงหรือไม่ อย่างไร?
ฉันค้นหาเว็บเกี่ยวกับรายละเอียดทางเทคนิคบางอย่างเกี่ยวกับการบล็อก I / O และการไม่บล็อก I / O และพบว่ามีหลายคนที่ระบุว่า I / O ที่ไม่ปิดกั้นจะเร็วกว่าการบล็อก I / O ตัวอย่างเช่นในเอกสารนี้ หากฉันใช้การบล็อก I / O แน่นอนว่าเธรดที่ถูกบล็อกในขณะนี้จะไม่สามารถทำอย่างอื่นได้ ... เพราะถูกบล็อก แต่ทันทีที่เธรดเริ่มถูกบล็อก OS สามารถเปลี่ยนไปใช้เธรดอื่นและไม่เปลี่ยนกลับจนกว่าเธรดที่ถูกบล็อกจะมีบางอย่าง ตราบใดที่มีเธรดอื่นในระบบที่ต้องการ CPU และไม่ถูกบล็อกก็ไม่ควรมีเวลาว่างของ CPU อีกต่อไปเมื่อเทียบกับวิธีการไม่บล็อกตามเหตุการณ์หรือไม่? นอกเหนือจากการลดเวลาที่ CPU ไม่ได้ใช้งานแล้วฉันยังเห็นอีกหนึ่งทางเลือกในการเพิ่มจำนวนงานที่คอมพิวเตอร์สามารถทำได้ในกรอบเวลาที่กำหนด: ลดค่าใช้จ่ายที่แนะนำโดยการสลับเธรด แต่จะทำได้อย่างไร? และค่าใช้จ่ายสูงพอที่จะแสดงเอฟเฟกต์ที่วัดได้หรือไม่? นี่คือแนวคิดเกี่ยวกับวิธีการที่ฉันสามารถวาดภาพได้: ในการโหลดเนื้อหาของไฟล์แอปพลิเคชันจะมอบหมายงานนี้ให้กับเฟรมเวิร์ก i / o ตามเหตุการณ์โดยส่งผ่านฟังก์ชันเรียกกลับพร้อมกับชื่อไฟล์ เฟรมเวิร์กเหตุการณ์มอบหมายให้กับระบบปฏิบัติการซึ่งตั้งโปรแกรมคอนโทรลเลอร์ DMA ของฮาร์ดดิสก์เพื่อเขียนไฟล์ลงในหน่วยความจำโดยตรง เฟรมเวิร์กเหตุการณ์อนุญาตให้เรียกใช้โค้ดเพิ่มเติมได้ เมื่อเสร็จสิ้นการคัดลอกจากดิสก์สู่หน่วยความจำตัวควบคุม DMA …

2
ValueError: การดำเนินการ I / O บนไฟล์ปิด
import csv with open('v.csv', 'w') as csvfile: cwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL) for w, c in p.items(): cwriter.writerow(w + c) นี่pคือพจนานุกรมwและcทั้งสองเป็นสตริง เมื่อฉันพยายามเขียนลงไฟล์มันรายงานข้อผิดพลาด: ValueError: I/O operation on closed file.
111 python  csv  file-io  io 


4
หลีกเลี่ยงการเรียกซ้ำเมื่ออ่าน / เขียนพอร์ตพร้อมกันหรือไม่?
การทำงานของพอร์ตทั้งหมดใน Rebol 3 เป็นแบบอะซิงโครนัส waitวิธีเดียวที่ฉันสามารถหาที่จะทำซิงโครการสื่อสารคือโทร แต่ปัญหาในการโทรรอในกรณีนี้คือจะตรวจสอบเหตุการณ์สำหรับพอร์ตที่เปิดอยู่ทั้งหมด (แม้ว่าจะไม่อยู่ในบล็อกพอร์ตที่ส่งผ่านเพื่อรอ) จากนั้นจึงเรียกตัวจัดการเหตุการณ์ตอบกลับ แต่การอ่าน / เขียนสามารถทำได้ในตัวจัดการเหตุการณ์เหล่านั้น ซึ่งอาจส่งผลให้เกิดการเรียกซ้ำเพื่อ "รอ" ฉันจะหลีกเลี่ยงสิ่งนี้ได้อย่างไร?
108 asynchronous  io  rebol  rebol3 

14
จะอ่านบรรทัดจากคอนโซลใน C ได้อย่างไร?
วิธีที่ง่ายที่สุดในการอ่านบรรทัดเต็มในโปรแกรมคอนโซล C คืออะไรข้อความที่ป้อนอาจมีความยาวผันแปรและเราไม่สามารถตั้งสมมติฐานเกี่ยวกับเนื้อหาได้
108 c  io  console  stdin 

9
เทียบเท่าฝรั่งสำหรับ IOUtils.toString (InputStream)
Apache Commons IOมีวิธีการอำนวยความสะดวกที่ดีIOUtils.toString ()ในการอ่านInputStreamสตริง เนื่องจากฉันพยายามย้ายออกจาก Apache Commons และไปที่Guava : มี Guava เทียบเท่าหรือไม่? ฉันดูคลาสทั้งหมดในcom.google.common.ioแพ็กเกจแล้วก็ไม่พบอะไรง่ายๆเลย แก้ไข:ฉันเข้าใจและขอบคุณปัญหาเกี่ยวกับชุดอักขระ มันเกิดขึ้นมากจนฉันรู้ว่าแหล่งที่มาทั้งหมดของฉันอยู่ใน ASCII (ใช่ ASCII ไม่ใช่ ANSI เป็นต้น) ดังนั้นในกรณีนี้การเข้ารหัสไม่ใช่ปัญหาสำหรับฉัน
106 java  io  inputstream  guava 

3
การใช้ FileSystemWatcher เพื่อมอนิเตอร์ไดเร็กทอรี
ฉันใช้ Windows Forms Application เพื่อตรวจสอบไดเร็กทอรีและย้ายไฟล์ที่ทิ้งไว้ในไดเร็กทอรีอื่น ในขณะนี้มันจะคัดลอกไฟล์ไปยังไดเร็กทอรีอื่น แต่เมื่อมีการเพิ่มไฟล์อื่นมันจะจบลงโดยไม่มีข้อความแสดงข้อผิดพลาด บางครั้งจะคัดลอกสองไฟล์ก่อนที่จะสิ้นสุดในไฟล์ที่สาม นี่เป็นเพราะฉันใช้ Windows Form Application แทนที่จะเป็นแอปคอนโซลใช่หรือไม่ มีวิธีใดบ้างที่ฉันสามารถหยุดโปรแกรมไม่ให้สิ้นสุดและเฝ้าดูไดเร็กทอรีต่อไป private void watch() { this.watcher = new FileSystemWatcher(); watcher.Path = path; watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName; watcher.Filter = "*.*"; watcher.Changed += OnChanged; watcher.EnableRaisingEvents = true; } private void OnChanged(object source, FileSystemEventArgs e) …

5
Python เขียนเป็น CSV ทีละบรรทัด
ฉันมีข้อมูลที่ถูกเข้าถึงผ่านคำขอ http และถูกส่งกลับโดยเซิร์ฟเวอร์ในรูปแบบที่คั่นด้วยจุลภาคฉันมีรหัสต่อไปนี้: site= 'www.example.com' hdr = {'User-Agent': 'Mozilla/5.0'} req = urllib2.Request(site,headers=hdr) page = urllib2.urlopen(req) soup = BeautifulSoup(page) soup = soup.get_text() text=str(soup) เนื้อหาของข้อความมีดังนี้: april,2,5,7 may,3,5,8 june,4,7,3 july,5,6,9 ฉันจะบันทึกข้อมูลนี้เป็นไฟล์ CSV ได้อย่างไร ฉันรู้ว่าฉันสามารถทำบางอย่างตามบรรทัดต่อไปนี้เพื่อทำซ้ำทีละบรรทัด: import StringIO s = StringIO.StringIO(text) for line in s: แต่ฉันไม่แน่ใจว่าจะเขียนแต่ละบรรทัดเป็น CSV ได้อย่างไร แก้ไข ---> ขอบคุณสำหรับข้อเสนอแนะตามที่แนะนำวิธีแก้ปัญหาค่อนข้างง่ายและสามารถดูได้ด้านล่าง วิธีการแก้: import StringIO s …
104 python  string  file  csv  io 

5
อ่านไฟล์ทั้งหมดโดยไม่ต้องใช้ loop ใน java
Possible Duplicate: วิธีสร้าง Java String จากเนื้อหาของไฟล์ Whole text file ไปยัง String ใน Java ฉันพยายามอ่านเนื้อหาของไฟล์โดยใช้ FileReader แต่ฉันต้องการอ่านไฟล์โดยไม่ต้องอ่านทีละบรรทัด เป็นไปได้ไหมที่จะอ่านทั้งไฟล์โดยไม่ต้องวนซ้ำ ฉันใช้รหัสต่อไปนี้ try { File ff=new File("abc.txt"); FileReader fr=new FileReader(ff); String s; while(br.read()!=-1) { s=br.readLine(); } } catch(Exception ex) { ex.printStackTrace(); }
103 java  file  io 

7
เหตุใดฉันจึงไม่สามารถเรียก read () สองครั้งในไฟล์ที่เปิดอยู่
สำหรับแบบฝึกหัดที่ฉันกำลังทำฉันพยายามอ่านเนื้อหาของไฟล์ที่กำหนดสองครั้งโดยใช้read()วิธีนี้ แปลกจังเมื่อฉันเรียกมันเป็นครั้งที่สองดูเหมือนว่าจะไม่คืนเนื้อหาไฟล์เป็นสตริง? นี่คือรหัส f = f.open() # get the year match = re.search(r'Popularity in (\d+)', f.read()) if match: print match.group(1) # get all the names matches = re.findall(r'<td>(\d+)</td><td>(\w+)</td><td>(\w+)</td>', f.read()) if matches: # matches is always None แน่นอนว่าฉันรู้ว่านี่ไม่ใช่วิธีที่มีประสิทธิภาพที่สุดหรือดีที่สุดนี่ไม่ใช่ประเด็น ประเด็นคือทำไมโทรread()สองครั้งไม่ได้ ฉันต้องรีเซ็ตที่จับไฟล์หรือไม่? หรือปิด / เปิดไฟล์ใหม่เพื่อที่จะทำ?
100 python  io 

14
ฉันจะใช้ไฟล์ในคำสั่งและเปลี่ยนทิศทางเอาต์พุตไปยังไฟล์เดียวกันโดยไม่ตัดทอนได้อย่างไร
โดยทั่วไปฉันต้องการใช้เป็นข้อความอินพุตจากไฟล์ลบบรรทัดออกจากไฟล์นั้นและส่งเอาต์พุตกลับไปที่ไฟล์เดียวกัน บางสิ่งบางอย่างตามเส้นเหล่านี้หากทำให้ชัดเจนขึ้น grep -v 'seg[0-9]\{1,\}\.[0-9]\{1\}' file_name > file_name อย่างไรก็ตามเมื่อฉันทำสิ่งนี้ฉันจะจบลงด้วยไฟล์เปล่า ความคิดใด ๆ ?
98 bash  redirect  io 

18
hadoop ไม่มี FileSystem สำหรับแบบแผน: ไฟล์
ฉันพยายามเรียกใช้งานง่ายๆ NaiveBayesClassiferโดยใช้ hadoop รับข้อผิดพลาดนี้ Exception in thread "main" java.io.IOException: No FileSystem for scheme: file at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1375) at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66) at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1390) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:196) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:95) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:180) at org.apache.hadoop.fs.Path.getFileSystem(Path.java:175) at org.apache.mahout.classifier.naivebayes.NaiveBayesModel.materialize(NaiveBayesModel.java:100) รหัส: Configuration configuration = new Configuration(); NaiveBayesModel model = NaiveBayesModel.materialize(new Path(modelPath), configuration);// error in this line.. modelPath ชี้ไปที่ NaiveBayes.binไฟล์และวัตถุการกำหนดค่ากำลังพิมพ์ -Configuration: …
97 java  hadoop  io 

6
จะอ่านจากอินพุตมาตรฐานทีละบรรทัดได้อย่างไร?
สูตร Scala สำหรับการอ่านทีละบรรทัดจากอินพุตมาตรฐานคืออะไร? สิ่งที่เหมือนกับรหัสจาวาที่เทียบเท่า: import java.util.Scanner; public class ScannerTest { public static void main(String args[]) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ System.out.println(sc.nextLine()); } } }

4
วิธีรับเส้นทางไดเรกทอรีทรัพยากรโดยทางโปรแกรม
ฉันมีเค้าโครงไดเร็กทอรีต่อไปนี้: src หลัก java ทรัพยากร sql (สคริปต์สำหรับฐานข้อมูล) สปริง (การกำหนดค่า) webapp ภายในคลาส ServletContextListener ฉันต้องการเข้าถึงไฟล์ภายใต้ไดเร็กทอรี SQL และแสดงรายการ โดยทั่วไปปัญหาของฉันอยู่ที่เส้นทางเพราะฉันรู้ว่าการแสดงรายการไฟล์ภายใต้ไดเรกทอรีโดยสรุปคือ: File folder = new File(path); File[] listOfFiles = folder.listFiles(); บางทีฉันอาจใช้ServletContextEventObject เพื่อลองสร้างเส้นทางไปresources/sql public void contextInitialized(ServletContextEvent event) { event.getServletContext(); //(getRealPath etc.) } มีบางอย่างเพื่อกำหนดเส้นทางนั้นในรูปแบบสัมพัทธ์และไม่ใช่ฮาร์ดโค้ด บางอย่างเช่นnew File("classpath:sql")(ควรสปริงถ้าเป็นไปได้) หรือฉันควรทำอย่างไรกับ servletContext เพื่อชี้ไปที่resources/sql?
90 java  spring  io 

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