从现有的 .txt 文件 'FIXED' 创建 Java.util.List
Creating a Java.util.List from an existing .txt file 'FIXED'
我正在尝试从现有的 .txt 文件创建一个 java.util.List,当创建列表并用 .txt 文件中的 java.util.String 填充时,我想将其打印到控制台测试列表是否已填充。我已经尝试了很多,但总是出现同样的错误。
项目布局如下:Module (QaA), src(WriteTest.java and testfile.txt).
testfile.txt 包含以下内容:
句子一测试
句子二测试
句子三测试
句子四测试
WriteTest Class:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class WriteTest {
public static void main(String[] args) throws IOException {
Path testPath = Paths.get("src/testfile.txt");
try {
List<String> lines = Files.readAllLines(testPath);
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
收到以下错误:
java.nio.file.NoSuchFileException: src\testfile.txt
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:230)
at java.nio.file.Files.newByteChannel(Files.java:361)
at java.nio.file.Files.newByteChannel(Files.java:407)
at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
at java.nio.file.Files.newInputStream(Files.java:152)
at java.nio.file.Files.newBufferedReader(Files.java:2784)
at java.nio.file.Files.readAllLines(Files.java:3202)
at java.nio.file.Files.readAllLines(Files.java:3242)
at WriteTest.main(WriteTest.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
我找到了导致出现大量错误的另一个原因。我的 .txt 文件的位置不应该在 src 中。我尝试将它移出,平行于我的模块,并且可以检测到它。
进行如下更改以获得给定的文件路径。
Path testPath = Paths.get(System.getProperty("user.dir")+"src/testfile.txt");
你的代码在我的工作区上有错误,我更改了 readAllLines 如下所示,并添加了 toAbsolutePath 作为路径
public static void main(String[] args) throws IOException
{
Path testPath = Paths.get("src/testfile.txt").toAbsolutePath();
System.out.println("path:\t" + testPath);
try
{
Charset cs = Charset.defaultCharset();
List<String> lines = Files.readAllLines(testPath, cs);
for (String line : lines)
{
System.out.println(line);
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
我正在尝试从现有的 .txt 文件创建一个 java.util.List,当创建列表并用 .txt 文件中的 java.util.String 填充时,我想将其打印到控制台测试列表是否已填充。我已经尝试了很多,但总是出现同样的错误。
项目布局如下:Module (QaA), src(WriteTest.java and testfile.txt).
testfile.txt 包含以下内容:
句子一测试
句子二测试
句子三测试
句子四测试
WriteTest Class:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class WriteTest {
public static void main(String[] args) throws IOException {
Path testPath = Paths.get("src/testfile.txt");
try {
List<String> lines = Files.readAllLines(testPath);
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
收到以下错误:
java.nio.file.NoSuchFileException: src\testfile.txt
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:230)
at java.nio.file.Files.newByteChannel(Files.java:361)
at java.nio.file.Files.newByteChannel(Files.java:407)
at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
at java.nio.file.Files.newInputStream(Files.java:152)
at java.nio.file.Files.newBufferedReader(Files.java:2784)
at java.nio.file.Files.readAllLines(Files.java:3202)
at java.nio.file.Files.readAllLines(Files.java:3242)
at WriteTest.main(WriteTest.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
我找到了导致出现大量错误的另一个原因。我的 .txt 文件的位置不应该在 src 中。我尝试将它移出,平行于我的模块,并且可以检测到它。
进行如下更改以获得给定的文件路径。
Path testPath = Paths.get(System.getProperty("user.dir")+"src/testfile.txt");
你的代码在我的工作区上有错误,我更改了 readAllLines 如下所示,并添加了 toAbsolutePath 作为路径
public static void main(String[] args) throws IOException
{
Path testPath = Paths.get("src/testfile.txt").toAbsolutePath();
System.out.println("path:\t" + testPath);
try
{
Charset cs = Charset.defaultCharset();
List<String> lines = Files.readAllLines(testPath, cs);
for (String line : lines)
{
System.out.println(line);
}
}
catch (IOException e)
{
e.printStackTrace();
}
}