我碰到一个问题,假如有个a.txt,里面有如下字符串:
Course CST230 
Hello 
Your name 
Good bye 
现在需要逆序输出output1为:
eyb dooG 
eman rouY 
olleH 
032TSC esruoC
接着output2为:
esrouC 032TSC 
olleH 
rouY eman 
dooG eyb
那么我的解决方法是:
public class test extends Object implements java.io.Serializable {
public static void main(String[] args) throws IOException {
BufferedReader input = new BufferedReader(new FileReader("a.txt"));
String line4 = null;
BufferedReader input4 = new BufferedReader(new FileReader("a.txt")); 
BufferedWriter ReverseOriginal4 = new BufferedWriter(new FileWriter("output4.txt")); 
while((line4=input4.readLine())!=null){
String s = line4;
StringBuffer buff = new StringBuffer(s);
ReverseOriginal4.write(buff.reverse().toString());
ReverseOriginal4.newLine();
}
ReverseOriginal4.flush();
ReverseOriginal4.close();
ReverseOriginal4 = null; 
input4.close();
可是这样输出的结果为:
032TSC esruoC
olleH
iL gnefiuR
eyb dooG
因为基础不扎实,output1我想用字符串数组做,但是失败了,因为write不能写字符串数组,我的代码如下:
BufferedReader input2 = new BufferedReader(new FileReader("a.txt"));
BufferedWriter ReverseOriginal2 = new BufferedWriter(new FileWriter("output2.txt"));
String[] data = new String[10];
while((line2=input2.readLine())!=null){
int j = 0;  String s = line2;
StringBuffer buff = new StringBuffer(s);
data[j] = buff.reverse().toString();
j++;
}
ReverseOriginal2.write(data[]);
ReverseOriginal2.newLine();
ReverseOriginal2.flush();
ReverseOriginal2.close();
ReverseOriginal2 = null;
input2.close();
这里的write就报错了,希望大家对两种逆序输出做些详细的指导和讲解,感觉output2更难一些,谢谢大家!

解决方案 »

  1.   

    import java.nio.charset.Charset;
    import java.nio.file.*;
    import java.io.*;
    import java.util.*;public class Example {
        public static void main(final String[] args){
            try(PrintWriter out = new PrintWriter(new File("D:/Temp/b.txt"))){
                Path file = Paths.get("D:/Temp/a.txt");
                List<String> lines = Files.readAllLines(file, Charset.defaultCharset());
                Collections.reverse(lines);
                for(String line : lines){
                    out.println(new StringBuilder(line).reverse());
                }
            } catch (java.io.IOException xe) {
                // handle exception
            }
        }
    }
    需要Java 7
      

  2.   

    这个可以先把a,txt文档里的内容放在一个字符串数组中(根据每行读取)
    BufferedReader reader=new BufferedReader(new InputStreamReader(new FileInputStream(new File(path))));

    String str;
    int count=0;
    //一次读取一行字符串,直至读取不到数据
    while((str=reader.readLine())!=null)
    {
    System.out.println(str);
    count++;

    }
    BufferedReader reader1=new BufferedReader(new InputStreamReader(new FileInputStream(new File(path))));
     data=new String[count];
    int i=0;
    String str1;
    while((str1=reader1.readLine())!=null)
    {

    data[i]=str1;
    i++;

    }
    剩下的就是对数组中的每个字符串进行发输出,这个单字符串发输出楼主应该没有问题吧