TXT现有数据如下:
1 1 1 1
1 1 1 1
......
1 1 1 1
共500行。
有个需求是这样的
从数字序列(1 到 13)范围随机抽取一个替换每行四个1其中一个。结果如:
1 4 1 1
9 1 1 1 等类似500个。
求源码。先谢谢各位了。

解决方案 »

  1.   

    求完整源码,本人小白。
    从读取到随机选位,随机抽数,到最后写到txt中。
      

  2.   

    思路应该就是创建一个input输入流读取一个txt文件,再创建一个写文件的Output输出流,每读取一行,(int)Math.random(4)函数取一个更改的位置,然后(int)Math.random(13)+1写出其值,最后关闭输入输出流应该就可以了
      

  3.   


    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.util.Random;public class TestAlter {
    //读取classpath下的temp。txt文件,对其每行的数据随机替换一个 1-13的数
    public void alterData() throws IOException{
    //创建文件输入流对象
    FileInputStream fis = new FileInputStream("temp.txt");
    InputStreamReader isr = new InputStreamReader(fis);
    BufferedReader br = new BufferedReader(isr);

    //创建文件输出流对象
    FileOutputStream fos = new FileOutputStream("temp1.txt");
    OutputStreamWriter osw = new OutputStreamWriter(fos);
    BufferedWriter bw = new BufferedWriter(osw);
    //创建随机数生成对象
    Random rand = new Random();
    String str = ""; while(null!=(str=br.readLine())){
    //随机位上的数变1-13之间的随机数
    StringBuffer sb = new StringBuffer();
    String[] ss = str.split(" ");
    ss[rand.nextInt(4)]=String.valueOf(rand.nextInt(13)+1);
    for(String s:ss){
    sb.append(s).append(" ");
    }
    bw.write(sb.toString());
    bw.newLine();
    }
    bw.flush();
    br.close();
    bw.close();

    }
    public static void main(String[] args){
    TestAlter test = new TestAlter();
    try {
    test.alterData();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }}
      

  4.   

    读入的文件和写入的文件不是一个文件 都是放在classpath下的 你要是想写到原文件里 你就用个列表先存下 我测试10行的,这个程序是可以的。你要是搞500行的 先自己写个程序生成一下txt源文件
      

  5.   

    为什么javac编译会报错呢?需要Class,interface,or enum? 我是按照你给的代码原本复制的。
      

  6.   

    temp.txt文件的构成是1空格1空格1空格1
    每行都是 
    temp。txt文件是放在当前项目下的