50,528
社区成员
发帖
与我相关
我的任务
分享
package Lesson8;
import java.io.*;
import java.util.*;
public class Demo2 {
public static void main(String[] args) {
try {
FileReader fr=new FileReader(new File("D:\\host.txt"));
BufferedReader br=new BufferedReader(fr);
String strTemp=null;
List<HostInfo> hiList=new ArrayList<HostInfo>();
HostInfo hostInfo=null;
while((strTemp=br.readLine())!=null)
{
if(strTemp.indexOf("host=")!=-1)
{
hostInfo=new HostInfo();
hostInfo.setStrHost(strTemp.substring(strTemp.indexOf("host=")+"host=".length()));
}
if(strTemp.indexOf("title=")!=-1)
{
hostInfo.setStrTitle(strTemp.substring(strTemp.indexOf("title=")+"title=".length()));
}
if(strTemp.indexOf("menu=")!=-1)
{
hostInfo.setStrMenu(strTemp.substring(strTemp.indexOf("menu=")+"menu=".length()));
}
if(strTemp.indexOf("+++")!=-1)
{
hostInfo.setStrPlus(strTemp.substring(strTemp.indexOf("+++")+"+++".length()));
hiList.add(hostInfo);
}
}
br.close();
for(HostInfo hi:hiList)//打印输出
{
System.out.println(hi);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class HostInfo
{
private String strHost;
private String strTitle;
private String strMenu;
private String strPlus;//保存+++信息
public String getStrHost() {
return strHost;
}
public void setStrHost(String strHost) {
this.strHost = strHost;
}
public String getStrTitle() {
return strTitle;
}
public void setStrTitle(String title) {
this.strTitle = title;
}
public String getStrMenu() {
return strMenu;
}
public void setStrMenu(String strMenu) {
this.strMenu = strMenu;
}
public String getStrPlus() {
return strPlus;
}
public void setStrPlus(String strPlus) {
this.strPlus = strPlus;
}
@Override
public String toString() {
return "HostInfo [strHost=" + strHost + ", strTitle=" + strTitle
+ ", strMenu=" + strMenu + ", strPlus=" + strPlus
+ "]";
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by Administrator on 14-10-23.
*/
public class TextReader {
public static List<Map<String,String>> readTxtFile(String filePath){
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
try {
String encoding="UTF-8";
File file=new File(filePath);
if(file.isFile() && file.exists()){ //判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file),encoding);//考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
List<String> hostList = new ArrayList<String>();
List<String> titleList = new ArrayList<String>();
List<String> menuList = new ArrayList<String>();
List<String> plusList = new ArrayList<String>();
while((lineTxt = bufferedReader.readLine()) != null){
if(lineTxt.startsWith("host")){
hostList.add(lineTxt.split("=")[1]);
}
if(lineTxt.startsWith("title")){
titleList.add(lineTxt.split("=")[1]);
}
if(lineTxt.startsWith("menu")){
menuList.add(lineTxt.split("=")[1]);
}
if(lineTxt.startsWith("+++")){
plusList.add(lineTxt.substring(3).trim());
}
}
for(int i=0;i<hostList.size();i++){
String host = hostList.get(i);
String title=titleList.get(i);
String menu = menuList.get(i);
String plus = plusList.get(i);
Map<String,String> map = new HashMap<String, String>();
map.put("host",host);
map.put("title",title);
map.put("menu",menu);
map.put("+++",plus);
list.add(map);
}
read.close();
}else{
System.out.println("找不到指定的文件");
}
} catch (Exception e) {
System.out.println("读取文件内容出错");
e.printStackTrace();
}
return list;
}
public static void main(String[] args){
String filePath="F:\\host.txt";
List<Map<String,String>> list=readTxtFile(filePath);
for(int i=0;i<list.size();i++){
Map<String,String> map = list.get(i);
System.out.println(map);
}
}
}
简单的写下了下,可能代码不够严谨,表达个思路