我有一个文件(称为"number.txt"),我想用Java读取数组.我该怎样继续这样做呢?它是一个直接的"1维"文件,包含100个数字.
问题是我每次都得到一个例外.显然它找不到它(我确信它拼写正确).查看代码示例时,它不指定文件的整个文件路径,只指定文件本身的名称.如果有必要,我该如何去做呢?
此外,在读取文件时,数组是否会自动包含文件的所有行,或者我是否必须创建一个循环,将每行复制到相应的下标i?
我听说过BufferedReader类,它的目的是什么,以及它如何与读取输入相结合?
too*_*kit 66
以下是一些帮助您入门的示例代码:
package com.acme;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FileArrayProvider {
public String[] readLines(String filename) throws IOException {
FileReader fileReader = new FileReader(filename);
BufferedReader bufferedReader = new BufferedReader(fileReader);
List<String> lines = new ArrayList<String>();
String line = null;
while ((line = bufferedReader.readLine()) != null) {
lines.add(line);
}
bufferedReader.close();
return lines.toArray(new String[lines.size()]);
}
}
Run Code Online (Sandbox Code Playgroud)
一个示例单元测试:
package com.acme;
import java.io.IOException;
import org.junit.Test;
public class FileArrayProviderTest {
@Test
public void testFileArrayProvider() throws IOException {
FileArrayProvider fap = new FileArrayProvider();
String[] lines = fap
.readLines("src/main/java/com/acme/FileArrayProvider.java");
for (String line : lines) {
System.out.println(line);
}
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
小智 40
import java.io.File;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
// ...
Path filePath = new File("fileName").toPath();
Charset charset = Charset.defaultCharset();
List<String> stringList = Files.readAllLines(filePath, charset);
String[] stringArray = stringList.toArray(new String[]{});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
164463 次 |
| 最近记录: |