Java 将文本文件拆分为数组
我有一个文本文件,格式如下:Java 将文本文件拆分为数组,java,arrays,file,split,Java,Arrays,File,Split,我有一个文本文件,格式如下: ID FName LName City Age ; 22333;Giannis;Georgakopoulos;Patisiwn, Athens;42 22222;Maria;Nikolakopoulou;Kabalas 33, Aigaleo;34 84567;Konstantinos;Santorinaios;Karaiskaki 44, Patisia;29 我想阅读文本并将第一个元素(ID、FName、LName、City、Age)添加到编码到数组中。在这
ID
FName
LName
City
Age
;
22333;Giannis;Georgakopoulos;Patisiwn, Athens;42
22222;Maria;Nikolakopoulou;Kabalas 33, Aigaleo;34
84567;Konstantinos;Santorinaios;Karaiskaki 44, Patisia;29
我想阅读文本并将第一个元素(ID、FName、LName、City、Age)添加到将>编码到数组中。在这之后,我想把剩下的放进另一个。
最后我想把它们放到一个数组中,格式如下:
ID FName LName City Age
22333;Giannis;Georgakopoulos;Patisiwn, Athens;42
22222;Maria;Nikolakopoulou;Kabalas 33, Aigaleo;34
84567;Kostas;Santorinaios;Karaiskaki 44, Patisia;29
我已开始使用以下代码,但无法完成它
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new FileReader(".../testing"));
String line = null;
String[] pinakas=new String[6];
int i=0;
while (!(line=br.readLine()).equals(";")) {
pinakas[i] = line;
i++;
System.out.println(line);
}
br.close();
}
让我试着给你一点指示
List<Person> list = new ArrayList<Person>();
String line;
try (
// open an input stream
InputStream fileInputStream = new FileInputStream("".../testing"");
// read file as UTF-8
InputStreamReader reader = new InputStreamReader(fileInputStream, Charset.forName("UTF-8"));
// open a BufferedReader to read line-by-line
BufferedReader br = new BufferedReader(reader);
) {
while ((line = br.readLine()) != null) {
// split the `line` on ";"
// [0] - ID
// [1] - FName
// [2] - LName
// [3] - City
// [4] - Age
String[] objects = line.split(";");
int ID = Integer.parseInt(objects[0]);
String fName = objects[1];
String lName = objects[2];
String city = objects[3];
int age = Integer.parseInt(objects[4]);
list.add( new Person(ID, fName, lName, city, age) );
}
}
System.out.println(list);
在lin中逐行读取打开的文件。创建一个名为Person
的对象是一个好主意,它将ID、FName、LName、City和Age作为字段。然后,您可以为文件中的每一行创建一个新的列表
条目
这有帮助吗?字符串数据=null;
String data = null;
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(filename));
while ((data = bufferedReader.readLine()) != null) {
String[] tempData = data.split("\t");
for (int j = 0; j <= 4; j++) {
dataFromFile[totalRecords][j] = (int) Float.parseFloat(tempData[j]);
}
totalRecords++;
}
} catch (FileNotFoundException ex) {
System.out.println("file not found");
} catch (IOException ex) {
System.out.println("error in opening file");
}
试一试{
BufferedReader BufferedReader=新的BufferedReader(新文件读取器(文件名));
而((data=bufferedReader.readLine())!=null){
字符串[]tempData=data.split(“\t”);
对于(int j=0;j)您是否考虑过创建?您需要更精确地描述您所面临的问题。那么,您的代码有什么问题?是什么阻止了您完成它?请查看以下内容:提示:使用扫描仪
——为什么是“有人能帮我吗?”不是一个实际的问题?您需要更精确地描述您所面临的问题。那么,您的代码有什么问题?是什么阻止了您完成它?----我的问题是,我可以用第一个元素(直到“;”)填充数组,但我找不到读取文件其余部分的方法(在第一个“;”)之后)然后把每一行从那里放到一个新的(或不是)数组中,这样之后就有机会匹配两个数组…如果你有另一个实现这一点的想法,我很乐意听到…你为什么像UT-8一样阅读它?…我用split尝试过这个“;”但是我找不到一种方法来得到我想要的结果。我如何设置其余的ID是数字(22333等)等等?你需要使用;
,而不是“;”(没有空格);UTF-8,因为您似乎不需要比这更大的东西。@cseKostas让我用实际使用的东西来更新它OOP@cseKostas完成!查看:)天哪…多谢了,伙计..我找到了一种方法,用2个while循环和3个ArrayList(一个用于标题,一个用于其余元素…还有一个同时使用这两个元素…)…我现在是电话用户,我无法上传代码,但非常感谢!!首先,非常感谢您的时间。但我有一个“例外”指出这行“dataFromFile[totalRecords][j]=(int)Float.parseFloat(tempData[j]);”…我对您的代码所做的唯一更改是设置“int totalRecords=0;”int[]dataFromFile=null;“for循环”之前.你知道我为什么会有这个问题吗?也许我的想法是错误的..你有任何关于用另一种方法来实现我想要的目标的建议吗?你面临的问题是什么?哪种异常?我可以有堆栈跟踪吗?在目前的代码中,你试图将数据转换为浮点可能就是这个问题。尝试更改它。P请清楚地说明问题。问题是“totalRecords”和“dataFromFile”无法解析为一个变量……请记住,我需要一个java程序,它将以我给出的格式接收任何txt文件,并返回(输出)第一行将具有的数组(id、fname、lname、adress、age-->每一个都在单独的列中)在这些名字下面放上我之前给过的元素,比如(12231,giannis,papadopoulos,karaiskaki 32,45等等)…如果我不能更具体的话,很抱歉..我是java编码新手..dataFromFile[totalRecords][j]=tempData[j];尝试在for循环中使用这一行。这里我们尝试读取第一行,根据空格将其拆分,并将其读入2×2数组数据fromfile[][]。请声明并初始化此数组。
String data = null;
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(filename));
while ((data = bufferedReader.readLine()) != null) {
String[] tempData = data.split("\t");
for (int j = 0; j <= 4; j++) {
dataFromFile[totalRecords][j] = (int) Float.parseFloat(tempData[j]);
}
totalRecords++;
}
} catch (FileNotFoundException ex) {
System.out.println("file not found");
} catch (IOException ex) {
System.out.println("error in opening file");
}