মরিচা তুলনামূলকভাবে নতুন হওয়ার সাথে সাথে আমি ফাইলগুলি পড়া এবং লেখার অনেকগুলি উপায় দেখেছি। অনেকগুলি অত্যন্ত অগোছালো স্নিপেটস যার সাথে তাদের ব্লগ এসেছিল এবং আমি যে উদাহরণগুলি পেয়েছি তার মধ্যে 99% (এমনকি স্ট্যাক ওভারফ্লোতেও) অস্থির বিল্ডগুলি থেকে কাজ করে যা আর কাজ করে না। এখন যে মরিচা স্থিতিশীল, ফাইল পড়া বা লেখার জন্য একটি সাধারণ, পঠনযোগ্য, অ-প্যানিকিং স্নিপেট কী?
এটি পাঠ্য ফাইলটি পড়ার ক্ষেত্রে কাজ করে এমন আমার কাছে সবচেয়ে কাছের এটি, তবে এটি এখনও সংকলন করছে না যদিও আমি মোটামুটি নিশ্চিত করেছি যে আমার যা কিছু করা উচিত তা অন্তর্ভুক্ত করেছি। এটি সমস্ত জায়গাগুলির Google+ এ আমি স্নিপেটের ভিত্তিতে তৈরি করেছি এবং আমি যে পরিবর্তন করেছি কেবল তা পুরানো BufferedReader
এখন ঠিক BufReader
:
use std::fs::File;
use std::io::BufReader;
use std::path::Path;
fn main() {
let path = Path::new("./textfile");
let mut file = BufReader::new(File::open(&path));
for line in file.lines() {
println!("{}", line);
}
}
সংকলকটি অভিযোগ করেছেন:
error: the trait bound `std::result::Result<std::fs::File, std::io::Error>: std::io::Read` is not satisfied [--explain E0277]
--> src/main.rs:7:20
|>
7 |> let mut file = BufReader::new(File::open(&path));
|> ^^^^^^^^^^^^^^
note: required by `std::io::BufReader::new`
error: no method named `lines` found for type `std::io::BufReader<std::result::Result<std::fs::File, std::io::Error>>` in the current scope
--> src/main.rs:8:22
|>
8 |> for line in file.lines() {
|> ^^^^^
সংক্ষেপে, আমি যা খুঁজছি তা হ'ল:
- সংক্ষিপ্ততা
- সুপাঠ্যতা
- সমস্ত সম্ভাব্য ত্রুটি আবরণ
- আতঙ্কিত হয় না
std::io::Read
), নোট করুন যে মরিচায় আপনাকে অবশ্যই এমন বৈশিষ্ট্যগুলি আমদানি করতে হবে যা আপনি স্পষ্টভাবে ব্যবহার করবেন বলে আশা করছেন ; সুতরাং এখানে আপনি একটি use std::io::Read
(যা use std::io::{Read,BufReader}
দুটি ব্যবহার একত্রিত করার এক হতে পারে) মিস করছেন