黑马程序员技术交流社区
标题:
java IO问题
[打印本页]
作者:
马姗姗
时间:
2014-1-18 18:03
标题:
java IO问题
import java.io.*;
import java.util.*;
import java.lang.String;
public class WordRev {
public static void main(String[] args){
Stack<String> stack=new Stack<String>();
try{
FileReader fn1=new FileReader("File4.txt");//把一个文件按String型入栈,使里面的每一个单词倒序输入到新文件中
BufferedReader br=new BufferedReader(fn1);
String line=br.readLine();
String[] str=line.split("");
for(int i=0;i<str.length;i++){
stack.push(str[i]);
}
FileWriter fn2=new FileWriter("File5.txt");
BufferedWriter bw=new BufferedWriter(fn2);
while(!stack.isEmpty()){
bw.write(stack.pop()+"");
}
br.close();
bw.close();
}catch(IOException e){
e.printStackTrace();
}
}
} 为什么我的程序只能使一句话倒序啊?应该怎么改?望大侠赐教!另外split的用法我不太明白~希望大侠解释下
作者:
放课后小朋友
时间:
2014-1-18 20:14
很明显,readLine方法只读取了一行内容,下面是具体代码:
import java.io.*;
import java.util.*;
import java.lang.String;
public class JiShuFen9 {
public static void main(String[] args) {
Stack<String> stack = new Stack<String>();
try {
FileReader fn1 = new FileReader("d:\\PrintWriter.txt");// 把一个文件按String型入栈,使里面的每一个单词倒序输入到新文件中
BufferedReader br = new BufferedReader(fn1);
String line =null;
while((line=br.readLine())!=null){
String[] str = line.split("");
for (int i = 0; i < str.length; i++) {
stack.push(str[i]);
}
}
FileWriter fn2 = new FileWriter("d:\\结果.txt");
BufferedWriter bw = new BufferedWriter(fn2);
while (!stack.isEmpty()) {
bw.write(stack.pop());
}
br.close();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
复制代码
字符串调用split方法返回的是一个String类型数组,split(regex)方法中regex是规则的意思,详情请看我的博客:http://blog.csdn.net/nerv2013/article/details/18284833
作者:
唐志海
时间:
2014-1-19 11:15
首先你读取文本数据String line=br.readLine()这句话只读取了一行。应该改为
String line=null
while((line=br.readLine())!=null)
{
String[] str=line.split("");
}
复制代码
split该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2