无法编译使用 std::io 的代码 - `std::io` 中没有 `File`
Cannot compile code that uses std::io - There is no `File` in `std::io`
我是 Rust 的新手,我只是想通过从文本文件执行基本的逐行读取来熟悉 io 库。我试图编译的示例直接来自网站。
use std::io::BufferedReader;
use std::io::File;
fn main() {
let path = Path::new("file_test.txt");
let mut file = BufferedReader::new(File::open(&path));
for line in file.lines() {
print!("{}", line.unwrap());
}
}
当我尝试用 rustc 编译它时,这些是我收到的错误:
io_test.rs:1:5: 1:28 error: unresolved import `std::io::BufferedReader`. There is no `BufferedReader` in `std::io`
io_test.rs:1 use std::io::BufferedReader;
^~~~~~~~~~~~~~~~~~~~~~~
io_test.rs:2:5: 2:18 error: unresolved import `std::io::File`. There is no `File` in `std::io`
io_test.rs:2 use std::io::File;
^~~~~~~~~~~~~
error: aborting due to 2 previous errors
我正在使用 Ubuntu 14.04,我不知道这是否是问题的一部分。我真的很感激任何帮助。也许这只是我的一些简单错误或错误。
您可能想要导入 std::fs::File
和 std::io::BufReader
(您还需要在代码中将 BufferedReader
更改为 BufReader
)。
一些注意事项:
BufferedReader
不存在,只有BufReader
。
std::io::File
其实就是std::fs::File
.
Path
缺少导入。
- 打开
File
可能会因错误而失败,必须进行处理或展开。在一个小脚本中 unwrap
很好,但这意味着如果文件丢失你的程序就会中止。
- 读取行不是可变操作,因此编译器会警告您它是不必要的可变操作。
- 要使用
lines
,您需要导入 use std::io::File
。
完成代码:
use std::io::{BufReader,BufRead};
use std::fs::File;
use std::path::Path;
fn main() {
let path = Path::new("file_test.txt");
let file = BufReader::new(File::open(&path).unwrap());
for line in file.lines() {
print!("{}", line.unwrap());
}
}
除了llogiq所说的
use std::io::BufferedReader
=> use std::io::{BufReader, BufRead}
use std::io::File
=> use std::fs::File
File::open
returns a Result
所以你可能需要 unwrap
例如
playpen link ... 恐慌,因为它 unwrap
在未知文件
上
我是 Rust 的新手,我只是想通过从文本文件执行基本的逐行读取来熟悉 io 库。我试图编译的示例直接来自网站。
use std::io::BufferedReader;
use std::io::File;
fn main() {
let path = Path::new("file_test.txt");
let mut file = BufferedReader::new(File::open(&path));
for line in file.lines() {
print!("{}", line.unwrap());
}
}
当我尝试用 rustc 编译它时,这些是我收到的错误:
io_test.rs:1:5: 1:28 error: unresolved import `std::io::BufferedReader`. There is no `BufferedReader` in `std::io`
io_test.rs:1 use std::io::BufferedReader;
^~~~~~~~~~~~~~~~~~~~~~~
io_test.rs:2:5: 2:18 error: unresolved import `std::io::File`. There is no `File` in `std::io`
io_test.rs:2 use std::io::File;
^~~~~~~~~~~~~
error: aborting due to 2 previous errors
我正在使用 Ubuntu 14.04,我不知道这是否是问题的一部分。我真的很感激任何帮助。也许这只是我的一些简单错误或错误。
您可能想要导入 std::fs::File
和 std::io::BufReader
(您还需要在代码中将 BufferedReader
更改为 BufReader
)。
一些注意事项:
BufferedReader
不存在,只有BufReader
。std::io::File
其实就是std::fs::File
.Path
缺少导入。- 打开
File
可能会因错误而失败,必须进行处理或展开。在一个小脚本中unwrap
很好,但这意味着如果文件丢失你的程序就会中止。 - 读取行不是可变操作,因此编译器会警告您它是不必要的可变操作。
- 要使用
lines
,您需要导入use std::io::File
。
完成代码:
use std::io::{BufReader,BufRead};
use std::fs::File;
use std::path::Path;
fn main() {
let path = Path::new("file_test.txt");
let file = BufReader::new(File::open(&path).unwrap());
for line in file.lines() {
print!("{}", line.unwrap());
}
}
除了llogiq所说的
use std::io::BufferedReader
=>use std::io::{BufReader, BufRead}
use std::io::File
=>use std::fs::File
File::open
returns aResult
所以你可能需要unwrap
例如
playpen link ... 恐慌,因为它 unwrap
在未知文件