如何从一个文本文件读取数据并写入数组并进行查询? 文本abc.txt :12568 李明22467 张强里98654 方芳22376 何玉宇...如何将其写入数组,并进行查询,例如快速将id和姓名对应起来。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 读文件肯定是IO流了,可以每次读一行,然后根据空格解析,存放到一个map里面 简单示例:Scanner in; try { in = new Scanner(new FileReader("abc.txt")); while (in.hasNextLine()) { int id = in.nextInt(); String name = in.nextLine(); System.out.println(id + " " + name); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } 放入到map中,直接通过get方法获取class Reader{ public Map<String, String> getUser(File file){ Map<String, String> users = new LinkedHashMap<String, String>(); BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(file)); while(true){ String line = reader.readLine(); if(line == null){ break; } String[] values = line.split("\\s+"); if(values.length == 2){ users.put(values[0], values[1]); } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally{ if(reader != null){ try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return users; }} 刚刚写的,可能不太好!import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;import java.util.ArrayList;import java.util.List;/** * * <简简单单先这样吧,这种情况是这样的,不支持续写,如果想在后面添加,必须先全部拿出来,在重新存> * <功能详细描述> * * @see [相关类/方法] */public class FileOutPut { public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub writeInfo(); readInfo(); } /** * * <读取文件> * <功能详细描述> * @throws Exception * @see [类、类#方法、类#成员] */ private static void readInfo() throws Exception{ // TODO Auto-generated method stub File fList = new File("user.txt"); ObjectInputStream objInput = new ObjectInputStream( new FileInputStream(fList)); List<User> userList= new ArrayList<User>(); userList = (List<User>) objInput.readObject(); User user = null; for (int i = 0; i < userList.size(); i++) { user = new User(); user =userList.get(i); System.out.println(user.getId()+"----"+user.getName()); } } /** * * <写文件> * <功能详细描述> * @throws Exception * @see [类、类#方法、类#成员] */ private static void writeInfo() throws Exception { File fList = new File("user.txt"); List<User> userList = new ArrayList<User>(); User user = new User(); user.setId("12568"); user.setName("李明"); userList.add(user); user = new User(); user.setId("22467"); user.setName("张强里"); userList.add(user); FileOutputStream file = new FileOutputStream(fList); ObjectOutputStream objout = new ObjectOutputStream(file); objout.writeObject(userList); objout.close(); }}class User extends Object implements Serializable { private String id; private String name; /** * 获取 id * * @return 返回 id */ public String getId() { return id; } /** * 设置 id * * @param 对id进行赋值 */ public void setId(String id) { this.id = id; } /** * 获取 name * * @return 返回 name */ public String getName() { return name; } /** * 设置 name * * @param 对name进行赋值 */ public void setName(String name) { this.name = name; }} 真正这样做的不多ObjectInputStream 和ObjectOutputStream 多用于socket java中如何调用本类里的方法? 在eclipse导出的runnable jar包打不开 怎么打开Java Design界面啊??? 谁能跟我细讲讲这3种同步的区别 这里应该怎么得到数据库字段???? jdk 运行问题 大侠帮忙啊! ArrayList 二维怎么用 请问有关hibernate3的数据库更新问题 用java的URL类怎么用post方式发送请求? <<java编程思想>>的一道练习题???写一个程序,打印出从命令行获取的三个自变量?解决即结帖 离开IDE,连接不上MYSQL,WHY? 读取XML 第一次用jdom包 求看写对否,报黄色感叹号,在线等
Scanner in;
try {
in = new Scanner(new FileReader("abc.txt"));
while (in.hasNextLine()) {
int id = in.nextInt();
String name = in.nextLine();
System.out.println(id + " " + name);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
public Map<String, String> getUser(File file){
Map<String, String> users = new LinkedHashMap<String, String>();
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
while(true){
String line = reader.readLine();
if(line == null){
break;
}
String[] values = line.split("\\s+");
if(values.length == 2){
users.put(values[0], values[1]);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
if(reader != null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return users;
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;/**
*
* <简简单单先这样吧,这种情况是这样的,不支持续写,如果想在后面添加,必须先全部拿出来,在重新存>
* <功能详细描述>
*
* @see [相关类/方法]
*/
public class FileOutPut { public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
writeInfo();
readInfo();
} /**
*
* <读取文件>
* <功能详细描述>
* @throws Exception
* @see [类、类#方法、类#成员]
*/
private static void readInfo() throws Exception{
// TODO Auto-generated method stub
File fList = new File("user.txt");
ObjectInputStream objInput = new ObjectInputStream(
new FileInputStream(fList));
List<User> userList= new ArrayList<User>();
userList = (List<User>) objInput.readObject();
User user = null;
for (int i = 0; i < userList.size(); i++) {
user = new User();
user =userList.get(i);
System.out.println(user.getId()+"----"+user.getName());
}
} /**
*
* <写文件>
* <功能详细描述>
* @throws Exception
* @see [类、类#方法、类#成员]
*/
private static void writeInfo() throws Exception {
File fList = new File("user.txt"); List<User> userList = new ArrayList<User>();
User user = new User();
user.setId("12568");
user.setName("李明");
userList.add(user); user = new User();
user.setId("22467");
user.setName("张强里");
userList.add(user);
FileOutputStream file = new FileOutputStream(fList);
ObjectOutputStream objout = new ObjectOutputStream(file);
objout.writeObject(userList);
objout.close();
}}class User extends Object implements Serializable {
private String id;
private String name; /**
* 获取 id
*
* @return 返回 id
*/
public String getId() {
return id;
} /**
* 设置 id
*
* @param 对id进行赋值
*/
public void setId(String id) {
this.id = id;
} /**
* 获取 name
*
* @return 返回 name
*/
public String getName() {
return name;
} /**
* 设置 name
*
* @param 对name进行赋值
*/
public void setName(String name) {
this.name = name;
}}