java io问题中的PrintWriter.调用相关方法无法把读取出来的文件写入到指定文件中

qq597955169 2014-08-30 11:45:07
import java.io.*;
public class PrintStream6 {
public static void main(String args) {
String filename = args;
String path = null;
if(args.length < 2) {

} else {
path = args;
}
BufferedReader br = null;
if (filename != null) {
if(path != null) {
printlist(filename,path);
}else {
printlist(filename,System.out);
}
}
}
public static void printlist(String f,PrintStream ps) {
try {
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s = null;
while((s = br.readLine()) != null) {
ps.println(s);
}
ps.close();
fr.close();
br.close();
} catch(IOException e) {
ps.println("文件无法读取!");
}
}

public static void printlist(String f,String path) {
FileWriter fw = null;
FileReader fr = null;
BufferedReader br = null;
int number = 0;
try {
fr = new FileReader(f);
br = new BufferedReader(fr);
String s = null;
//File pathname = new File(path);
fw = new FileWriter(path);
//BufferedWriter br1 = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(fw);
while((s = br.readLine()) != null) {
System.out.println(s);
pw.println(s);//这里怎么写文件写不进去??感觉这句话没执行一样
number++;
}
System.out.println(number + "个字符!");
fr.close();
br.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}


//运行是:java PrintStream6 PrintStream6.java d:\\sss.txt
...全文
326 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq597955169 2014-09-01
  • 打赏
  • 举报
回复
引用 4 楼 shijiaqi372 的回复:
1.主方法问题 2.流的刷新缓冲区 3.流的关闭最好定义在 finally {} 中 4.路径的问题你最好检查下
import java.io.*;
public class PrintStream6 {
	public static void main(String[] args) {
		String filename = args[0];
		String path = null;
		if(args.length < 2) {
			
		} else {
			path = args[1];
		}
		BufferedReader br = null;
		if (filename != null) {
			if(path != null) {
				printlist(filename,path);
			}else {
				printlist(filename,System.out);
			}
		}
	}

	public static void printlist(String f,PrintStream ps) {
		try {
			FileReader fr = new FileReader(f);
			BufferedReader br = new BufferedReader(fr);
			String s = null;
			while((s = br.readLine()) != null) {
				ps.println(s);
			}
			ps.flush();
			ps.close();
			fr.close();
			br.close();
		} catch(IOException e) {
				ps.println("文件无法读取!");
			}		
 }	
 
	public static void printlist(String f,String path) {
		FileReader fr = null;
		FileWriter fw = null;
		try {
			int s;
			fr = new FileReader(f);
			fw = new FileWriter(path);
			while((s = fr.read()) != -1) {
				fw.write(s);
				System.out.print((char)s);
			}
				fw.flush();
				fr.close();
				fw.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
精准 2014-08-31
  • 打赏
  • 举报
回复
1.主方法问题 2.流的刷新缓冲区 3.流的关闭最好定义在 finally {} 中 4.路径的问题你最好检查下
qq597955169 2014-08-31
  • 打赏
  • 举报
回复
引用 1 楼 rumlee 的回复:
我没看完,只看了一行你的main方法就没往下看了,你的main方法就定义错了,这样你的程序根本无法启动。 main方法的定义 public static void main(String [] args) 不是 public static void main(String args)
我的程序写的是public static void main(String[] args) 我也不知道怎么会变成那个字符串格式,应该是字符串数组格式。那里不纠结了。。。
铁匠梁老师 2014-08-31
  • 打赏
  • 举报
回复
输出流关闭之前,请执行 flush()
rumlee 2014-08-31
  • 打赏
  • 举报
回复
我没看完,只看了一行你的main方法就没往下看了,你的main方法就定义错了,这样你的程序根本无法启动。 main方法的定义 public static void main(String [] args) 不是 public static void main(String args)

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧