我有一个包含如下数据的文本文件:
a1 a2 b1 b2 c1 a1b2c1 //Line 1
a2 b2 c2 d1 e1 b2c1 //Line 2
b1 c3 d2 e1 e2 c3 //Line 3
如何在 Java 中读取此文件以及在何处以及如何存储数据?任何帮助,将不胜感激。谢谢。
我有一个包含如下数据的文本文件:
a1 a2 b1 b2 c1 a1b2c1 //Line 1
a2 b2 c2 d1 e1 b2c1 //Line 2
b1 c3 d2 e1 e2 c3 //Line 3
如何在 Java 中读取此文件以及在何处以及如何存储数据?任何帮助,将不胜感激。谢谢。
如果您想将其存储到列表中:
public static void main(String... s) throws Exception {
FileReader fr = new FileReader("read.txt");
BufferedReader br = new BufferedReader(fr);
String line = "";
List<String> list = new ArrayList<String>(0);
while ((line = br.readLine()) != null) {
// process the line.
list.add(line);
}
br.close();
fr.close();
}
2个问题仍然存在:
int
? 由于阅读所有字符很容易,我建议您使用BufferedReader
. 它将让您轻松阅读段落的句子。
为此,您需要研究:
1.java.nio.Path
和java.nio.Paths
(从 Java 7 开始)
2.java.nio.file.Files
制作InputStream
3.因为构造函数InputStreamReader
需要它。
4.本身:) BufferedReader
BufferedReader
这是一个简单的例子
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Vector;
import static java.nio.file.StandardOpenOption.*;
public class TestReader {
public static void main(String[] args) throws IOException {
Path fileLocation = Paths.get("E:\\setup.txt"); // location of the file
Vector<String> sentences = new Vector<String>(); //I do not know how many sentences are there
InputStreamReader insReader = null;
BufferedReader reader = null;
String readSentence;
insReader = new InputStreamReader(Files.newInputStream(fileLocation,READ));
reader = new BufferedReader(insReader);
while((readSentence=reader.readLine())!=null){
sentences.add(readSentence);
}
for(String a : sentences){
System.out.println(a);
}
}
}
您可以轻松地将文本文件“读取”到内存中。问题是:为了什么?这里的关键概念是如何存储它以使数据有用,即它可以很容易地被您的程序处理。由于我们忽略了问题的目的,我假设您只需要每个粒子作为字符串。为此,像这样的简单程序将执行以下操作:
import java.util.*;
import java.io.*;
public class ReaderApp {
public static void main(String[] args)
{
if ( args.length == 1 ) {
String[] data = readData( args[ 0 ] );
if ( data.length > 0 ) {
for(int i = 0; i < data.length; ++i) {
System.out.println( data[ i ] );
}
} else {
System.err.println( "ERROR: problem reading file" );
}
} else {
System.err.println( "ERROR: add the name of the text file" );
}
}
public static String[] readData(String fileName)
{
ArrayList<String> toret = new ArrayList<>();
try (BufferedReader f = new BufferedReader( new FileReader( fileName ) ) )
{
String line = f.readLine();
while( line != null ) {
String[] parts = line.split( " " );
toret.addAll( Arrays.asList( parts ) );
line = f.readLine();
}
}
catch(IOException exc)
{
toret.clear();
}
return toret.toArray( new String[ toret.size() ] );
}
}
希望这可以帮助。