我有一个文件(称为"number.txt"),我想用Java读取数组.我该怎样继续这样做呢?它是一个直接的"1维"文件,包含100个数字.
问题是我每次都得到一个例外.显然它找不到它(我确信它拼写正确).查看代码示例时,它不指定文件的整个文件路径,只指定文件本身的名称.如果有必要,我该如何去做呢?
此外,在读取文件时,数组是否会自动包含文件的所有行,或者我是否必须创建一个循环,将每行复制到相应的下标i?
我听说过BufferedReader类,它的目的是什么,以及它如何与读取输入相结合?
以下是一些帮助您入门的示例代码:
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); Listlines = new ArrayList (); String line = null; while ((line = bufferedReader.readLine()) != null) { lines.add(line); } bufferedReader.close(); return lines.toArray(new String[lines.size()]); } }
一个示例单元测试:
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); } } }
希望这可以帮助.
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(); ListstringList = Files.readAllLines(filePath, charset); String[] stringArray = stringList.toArray(new String[]{});