能不能在文本record.txt中修改里边的内容
例如:abcde@123@,我只要修改两个@里边的内容,替换也可以

解决方案 »

  1.   

    先读出来(InputStream)
    修改String str=str.replaceAll("@","");
    存入(OutputStram)
      

  2.   

    哦。里边的内容。
    String str = "abcde@123@@@";
         if(str.matches(".*@(.*)?@.*")){
         str=str.replaceAll("@.*?@", "@__@");
         }
    System.out.println(str);
      

  3.   

    上面的大神,能写得详细点吗?我刚学java不久,菜鸟中的菜鸟!
      

  4.   


    String s=null;
    File fileseg=new File("你的目录");
    File  fileres=new File("你的输出目录");
    BufferedReader readerseg=new BufferedReader(new FileReader(fileseg));
    PrintStream ps=new PrintStream(new FileOutputStream(fileres));
    while((s=readerseg.readLine())!=null){
    s=s.replaceAll("@","");
    ps.print(s);
    }
      

  5.   

    怎么把原有的给替换掉呢?我想把abcde@123@换成abcde@456@,写到同一文件中
      

  6.   

    楼主你先看看是不是你要的,在说哪个技术方面有问题,写清楚一点,是要直接的文本替换,用记事本自带的功能就可以了ctr+f,还是用程序实现,直接程序在文本中替换?我的意思是先用inputStream先读出来,判断,有没有要替换的内容,然后替换,替换完了,最后一起放回去(OutputStream),就实现了替换功能了。
      

  7.   

    我的意思是想用代码,从txt文档中,截取一段数据,然后修改,或替换,再重新写到原来的那个文档中,
    例如:有一txt文件,text.txt,里面的内容是:abcd@123,我想改成abcd@456,再写回text.txt文件中
      

  8.   


    public class DataInputAndOutput { public static void main(String[] args){
    try {
    //写入不要用就注释掉
    FileWriter fw = new FileWriter("test.txt");
    PrintWriter out = new PrintWriter(new BufferedWriter(fw));
    out.write("abcde@123@\n");
    out.write("ab@@asdf\n");
    out.write("ab@@@we\n");
    out.write("ab@@@@asdf\n");
    out.flush();
    out.close();
    //读取
    BufferedReader br = new BufferedReader(new FileReader(new File("test.txt")));
    StringBuffer sb = new StringBuffer();
    String str = null;
    while((str=br.readLine()) != null){
    if(str.matches(".*@(.*)?@.*")){
    str=str.replaceAll("@.*?@", "@__@"); }
    System.out.println(str);
    sb.append(str+"\n");
    }
    sb.setLength(sb.length()-1);
    br.close();
    //写入
    out = new PrintWriter(new BufferedWriter(new FileWriter("test.txt")));
    out.write(sb.toString());

    out.flush();
    out.close();
    }catch(FileNotFoundException e){
    System.out.println("bcd");
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
      

  9.   


    public class DataInputAndOutput {    public static void main(String[] args){
            try {
                //写入不要用就注释掉
                FileWriter fw = new FileWriter("E:/test.txt");
                PrintWriter out = new PrintWriter(new BufferedWriter(fw));
                out.write("abcde@123@\n");//建好一个输出流,把下面3句话输出到一个地址E:/test.txt的文件中
                out.write("ab@@asdf\n");
                out.write("ab@@@we\n");
                out.write("ab@@@@asdf\n");
                out.flush();//清楚缓存
                out.close();//关闭数据流
                //读取
                BufferedReader br = new BufferedReader(new FileReader(new File("test.txt")));
                StringBuffer sb = new StringBuffer();
                String str = null;
                while((str=br.readLine()) != null){//一行一行读,如果不为空,继续运行
                    if(str.matches(".*@(.*)?@.*")){//正则表达
                        str=str.replaceAll("@.*?@", "@__@");//找到两个@ @就把之间的内容替换掉                }
                    System.out.println(str);
                    sb.append(str+"\n");
                }
                sb.setLength(sb.length()-1);//因为多加了一个换行符,所以截掉
                br.close();//关闭输入流
               
    //写入
                out = new PrintWriter(new BufferedWriter(new FileWriter("E:test.txt")));
                out.write(sb.toString());//把sb里面的内容读入E:test.txt中
                
                out.flush();
                out.close();
            }catch(FileNotFoundException e){
                System.out.println("文件未找到");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    //这是自动生成文件,楼主可以自己写个E:test.txt文件,把信息填入,然后把一段注释掉。
    从try下面注释开始到out.close()。全部注释掉
      

  10.   

    太感谢楼上的大神牛人了,要慢慢消化才行!我是菜鸟,有点拿来意义了!谢谢!
    我原来是做个ATM项目,但数据文件只能从TXT文件中截取,所以才要用到这个知识点,非常感谢大家!
      

  11.   

    具体要怎么做呢,我要把下面中的其中一行内$$之间改掉,其它的不变,可以实现吗?
    aaaaaa#111#$500$
    bbbbbb#222#$500$