package org.ccid.test;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;/**
* @user: Administrator
* @author: yougang
* @version:1.0
* @created:Jan 6, 2011
*/public class ReadName {
public static void main(String[] args) throws Exception{
FileInputStream fileRead = new FileInputStream(new File("D:\\name.txt"));
InputStreamReader inputStreamReader = new InputStreamReader(fileRead,"UTF-8");
BufferedReader buffer = new BufferedReader(inputStreamReader);
String tempStr = "";
List list = new ArrayList();
System.out.println("所有人名如下:");
while((tempStr=buffer.readLine())!=null) {
System.out.println(tempStr);
list.add(tempStr);
}
System.out.println("-------------------------");//每次随机删除三个人名
System.out.println("删除的人名如下:");
for (int i = 0; i < 3; i++) {
int tempIndex = (int)(Math.random()*4);
System.out.println(list.get(tempIndex));
list.remove(tempIndex);
}
System.out.println("--------------------------");
System.out.println("剩下的人名如下:");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}现在问题是如何将剩下的人名逐行写回原来的TXT文件(覆盖掉原来的)
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;/**
* @user: Administrator
* @author: yougang
* @version:1.0
* @created:Jan 6, 2011
*/public class ReadName {
public static void main(String[] args) throws Exception{
FileInputStream fileRead = new FileInputStream(new File("D:\\name.txt"));
InputStreamReader inputStreamReader = new InputStreamReader(fileRead,"UTF-8");
BufferedReader buffer = new BufferedReader(inputStreamReader);
String tempStr = "";
List list = new ArrayList();
System.out.println("所有人名如下:");
while((tempStr=buffer.readLine())!=null) {
System.out.println(tempStr);
list.add(tempStr);
}
System.out.println("-------------------------");//每次随机删除三个人名
System.out.println("删除的人名如下:");
for (int i = 0; i < 3; i++) {
int tempIndex = (int)(Math.random()*4);
System.out.println(list.get(tempIndex));
list.remove(tempIndex);
}
System.out.println("--------------------------");
System.out.println("剩下的人名如下:");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}现在问题是如何将剩下的人名逐行写回原来的TXT文件(覆盖掉原来的)
import java.util.ArrayList;
import java.util.List;
public class TXT {
public static void main(String[] args){
List names=new ArrayList();
names.add("name1");
names.add("name2");
names.add("name3");
names.add("name4");
names.add("name5");
File f = new File("E:\\123.txt");
if(f.exists()){
System.out.print("文件存在");
}else{
System.out.print("文件不存在");
try {
f.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//不存在则创建
} try {
BufferedReader input = new BufferedReader(new FileReader(f));
BufferedWriter output = new BufferedWriter(new FileWriter(f));
for(int i=0;i<names.size();i++)
output.write((String)names.get(i)+"\r\n");
output.close(); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}