import java.io.*;
//字节流
class ZiJie{

String file2 = "HelloB.txt";
void zijie(){
try{
BufferedOutputStream out2 = new BufferedOutputStream(new FileOutputStream(file2));
System.out.println("以字节流自动保存到c:\\HelloB.txt中!");
BufferedInputStream in2 = new BufferedInputStream(System.in);
int b = in2.read();
out2.write(b);
out2.close();
}catch (Exception e) {
// TODO: handle exception
}
}
}
import java.io.*;//字符流
class ZiFu { String file1 = "HelloA.txt";

void zifu(){
try{
BufferedWriter out1 = new BufferedWriter(new FileWriter(file1));
System.out.println("请输入字符串改字符串自动保存到c:\\HelloA.txt中!");
BufferedReader in1 = new BufferedReader(new InputStreamReader(System.in));
String a = in1.readLine();
out1.write(a);
out1.close();
}catch (Exception e) {
// TODO: handle exception
}
}
}
import java.io.*;
import java.text.*;class HeBing {

String file3 = "Hello.txt";
String file4 = "newHello.txt";

ZiFu zf = new ZiFu();
ZiJie zj = new ZiJie();

void hebing(){
try{//合并上面两文件并显示
BufferedWriter out3 = new BufferedWriter(new FileWriter(file3));
System.out.println("字节流形式合并HelloA.txt和HelloB.txt到c:\\HelloB.txt中!");
InputStream k1 = new FileInputStream(new File(zf.file1));
InputStream k2 = new FileInputStream(new File(zj.file2));
SequenceInputStream in4 = new SequenceInputStream(k1,k2);
int c = 0;
while((c=in4.read())!=-1){
out3.write(c);
}
out3.close();
InputStream k3 = new FileInputStream(new File(file3));
int d = 0; 
while((d=k3.read())!=-1){
System.out.println(d);
}
问题出在这里!!!重命名始终不成功都两天了……哎……
//改名字
File file5 = new File(file4);
File file6 = new File(file3);
if(file5.exists()){
file5.delete();
}else {
boolean x = file5.renameTo(file5);
System.out.println(x);
} //打印文件属性
if(file5.exists()){
System.out.println(file5.getAbsolutePath());
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(file5.lastModified()));
System.out.println(file5.length());  
System.out.println(file5.canRead());    
System.out.println(file5.canWrite());  
}

}catch (Exception e) {
// TODO: handle exception
}
}
}
//主函数
class IoTest{
public static void main(String[] agrs) {

ZiFu zf = new ZiFu();
ZiJie zj = new ZiJie();
HeBing hb = new HeBing();

zf.zifu();
zj.zijie();
hb.hebing();
}
}

解决方案 »

  1.   

    问题出在这里!!!重命名始终不成功都两天了……哎…… 第一次发求助帖问题区颜色居然没有弄对……有没有高手解答啊?
    //改名字
    File file5 = new File(file4);
    File file6 = new File(file3);
    if(file5.exists()){
    file5.delete();
    }else {
    boolean x = file5.renameTo(file5);
    System.out.println(x);
    }
      

  2.   

    你这什么逻辑?存在的时候删除,不存在的时候改名?
    文件不存在你改什么?
    if(file5.exists()){
    file5.delete();
    }else {
    boolean x = file5.renameTo(file5);
    System.out.println(x);

      

  3.   

    这段逻辑明显有错误
    if(file5.exists()){ 如果file5存在则删除
        file5.delete();
    }else { //file5不存在则改名
        boolean x = file5.renameTo(file5); //既然file5不存在,又怎么能把file5改名,应该是file6吧
        System.out.println(x);             //file6.renameTo(file5);这样才对吧
    }
      

  4.   

    file5关联file4 file6关联file3!也就是说如果file4存在删除它!如果file4不存在把file3改名字为file4!呵呵刚才把代码改过来了但是还是无法改名字!提示改名字为false!但是如果我新建一个主函数只调用renameto就可以改!但是这里……郁闷了两天了……谢谢回答呵呵第一次提问收到的第一次回答……
      

  5.   

    改过来了还是提示false 代码和结果如下:
    //改名字
    File file5 = new File(file4);
    File file6 = new File(file3);
    if(file5.exists()){
    file5.delete();
    }else {
    boolean x = file6.renameTo(file5);
    System.out.println(x);
    }
    结果:
    请输入字符串改字符串自动保存到c:\HelloA.txt中!
    fds
    以字节流自动保存到c:\HelloB.txt中!
    dsf
    字节流形式合并HelloA.txt和HelloB.txt到c:\HelloB.txt中!
    102
    100
    115
    100
    false
      

  6.   

    File file5 = new File(file4);
    File file6 = new File(file3);//确定名称为file3的file存在吗
    if(file5.exists()){
    file5.delete();
    }else {
    boolean x = file6.renameTo(file5);//若file6不存在则结果为flaseSystem.out.println(x);
    }
      

  7.   

    唉……判断了!file3是存在的!但是就是改不了名字……郁闷两天了……
      

  8.   


    InputStream k3 = new FileInputStream(new File(file3));
    你的k3流close了吗?
    你打开file3文件没关闭,也就是说file3文件在使用中,那么改名就会失败
      

  9.   

    你直接用file3 file4不就行吗,为什么要弄个5,6用完stream后要记得关闭。
    不然别的地方就无法正常使用这个文件。估计你的就是这原因
      

  10.   

    呵呵多谢各位了!!!学java的第一个问题完美解决了!就是因为k3没有关闭的原因!【gukuitian】因为file3和file4是string类型而renameto是file的方法所以不能直接用的?谢谢各位了……
      

  11.   

    请问其中的in1和in2等对着system.in的以及其他的k1,k2需要关闭么?为什么我都关闭了后反而不正常了呢?只关闭k3就完美运行了!有点儿费解……