先说明,本人比较熟悉c语言,但是java就不行了.所以才问这个问题的. 
题目是这样的: 
建立c:\\2.txt这个文件,然后在2.txt里 
写入这个* * * * * 然后这样读出 * 
          * c *              * a * 
            *              * * * * * 
我已经做出了c语言的:#include"stdio.h" 
#include"conio.h" 
#include"string.h" 
main() 

FILE *fp; 
char s[3][100]; 
int i,j; 
fp=fopen("c:\\2.txt","w"); 
for(i=0;i<3;i++) 

for(j=0;j<i;j++)fprintf(fp," "); 
for(j=0;j<5-i*2;j++)fprintf(fp,i==1&&j==1?"c ":"* "); 
fprintf(fp,"\n"); 

fclose(fp); 
fp=fopen("c:\\2.txt","r"); 
for(i=0;i<3;i++) 

fgets(s[i],100,fp); 

for(i=0;i<3;i++) 

j=0; 
while(s[i][j]) 

if(s[i][j]=='c') 
s[i][j]='a'; 
j++; 


for(i=2;i>=0;i--) 
puts(s[i]); 

我朋友做出了java的: 
import java.io.*; 
public class BufferedIODemo { 
public static void main (String[] args) { 
BufferedWriter writer =null; 
try{ 
writer=new BufferedWriter(new FileWriter("c:\\2.txt")); 
writer.write("* * * * *"); 
writer.newLine(); 
writer.write(" * c * "); 
writer.newLine(); 
writer.write(" *"); 
writer.newLine(); 

catch (IOException e){ 
e.printStackTrace(); 

finally { 
if (writer!=null) 
try { 
writer.close(); 

catch (IOException e) {} 
} BufferedReader reader=null; 
try{ 
reader=new BufferedReader(new FileReader("c:\\2.txt")); 
//从这里开始 
String s1,s2,s3; 
char a[]; 
s1=reader.readLine(); 
s2=reader.readLine(); 
s3=reader.readLine(); 
a=s2.toCharArray(); 
System.out.println(s3); 
for (int i=0;i<s2.length();i++){ 
if (a[i]=='c') 
a[i]='a'; 
System.out.print(a[i]); } 
System.out.println(""); 
System.out.println(s1); 
reader.close(); 

catch (IOException e) {} 


两个都可以实现.现在我问的问题是: 
哪位朋友可以将我做的那个c语言的,改成java的.换句话说,就是利用c语言的那个(方法)来"套"java那个,从而实现java达到目的的另一个方法呢?谢谢! 
<ps:最好在不改变前面部分(//从这里开始 的前面部分),只改变后面的部分就可以了.再次感谢!!>

解决方案 »

  1.   

    ----------------------------Test.java--------------------------------------
    import java.io.*;public class Test {
      public static void main(String[] args) 
     {
       BufferedWriter writer =null; 
       String str=new String();
       char s[][]=new char[3][10];
       int i,j;
       try{ 
         writer=new BufferedWriter(new FileWriter("c:\\2.txt")); 
         for(i=0;i<3;i++) 
         { 
           for(j=0;j<i;j++)
             writer.write("  ");
           for(j=0;j<5-i*2;j++)
           {
             writer.write(i==1&&j==1?"c ":"* ");
           }
           writer.newLine();  
         } 
       } 
       catch (IOException e){ 
         e.printStackTrace(); 
       } 
       finally { 
         if (writer!=null) 
           try { 
             writer.close(); 
           } 
           catch (IOException e)
           {
             e.printStackTrace();
           } 
       } 
       
       BufferedReader reader=null; 
       String s1=new String();
       String s2=new String();
       String s3=new String();
       try{ 
         reader=new BufferedReader(new FileReader("c:\\2.txt"));
    s1=reader.readLine(); 
    s2=reader.readLine(); 
    s3=reader.readLine();
         for(i=0;i<3;i++) 
         { 
       if(i==0)
       {
       for(j=0;j<s1.length();j++)
       {
       s[i][j]=s1.charAt(j);
       }
       }
       if(i==1)
       {
       for(j=0;j<s2.length();j++)
       {
       s[i][j]=s2.charAt(j);
       }
       }
       if(i==2)
       {
       for(j=0;j<s3.length();j++)
       {
       s[i][j]=s3.charAt(j);
       }
       }
         } 
         for (j=0;j<s2.length();j++){
         { 
           if(s[1][j]=='c') 
            s[1][j]='a'; 
             j++; 
         } 
       }
       reader.close(); 
     } 
       catch (IOException e) 
       {
         e.printStackTrace();
       } 
      for(i=2;i>=0;i--)
      {
        for(j=0;j<10;j++)
        {
          System.out.print(s[i][j]);
        }
        System.out.println("");
      }
     } 
    }
    --------------------------------------------------------------------------
    做的和你的C语言的方法有点像了,有问题再问我吧。呵呵!
    --------------------------------------------------------------------------------
    技术的提升在于不断的探讨和交流,欢迎大家加入《『Ben』J2EE交流群》QQ群:24711176