黑马程序员技术交流社区
标题:
文件读取后对字符排序后存入的问题
[打印本页]
作者:
冯大卫
时间:
2014-9-3 22:25
标题:
文件读取后对字符排序后存入的问题
package com.itheima;
/**
* 5、 已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,并按照自然顺序排序后输出到b.txt文件中。即b.txt中的文件内容应为“abcd…………..”这样的顺序。
* @author
* @date 2014/04/19
*/
import java.io.*;
import java.util.*;
class t2
{
public static void main(String[] args)throws Exception
{
FileReader file_source=null;
FileWriter file_destination=null;
try
{
file_source=new FileReader("D:/a.txt");
file_destination=new FileWriter("D:/b.txt");
char[] buf=new char[1024];
int len=0;
while((len=file_source.read(buf))!=-1)
{
// Sort(buf);
Arrays.sort(buf);
System.out.println(buf);
file_destination.write(buf,0,len);
file_destination.flush();
}
}
catch(IOException e)
{
e.printStackTrace();
}
finally
{
try
{
if(file_source!=null)
file_source.close();
}
catch(IOException e)
{
e.printStackTrace();
}
try
{
if(file_destination!=null)
file_destination.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
/* public static void Swap(char a,char b)
{
char ch=a;
a=b;
b=ch;
}
public static void Sort(char []s)
{
int j,k,flag;
flag=s.length;
while(flag>0)
{
k=flag;
flag=0;
for(j=1;j<k;j++)
if()
{
Swap(s[j-1],s[j]);
flag=j;
}
}
}*/
}
在D盘下建一个a.txt,存入bcdeadferwplkou,然后运行此代码,可以执行,但是为什么b.txt中没有数据!刷新了也关闭了!
作者:
谢建平
时间:
2014-9-4 08:32
那个重新排序是不对的 char[] buf=new char[1024]; 比如你抓了5个字符 你一排列 其实不是只这5个在排的 后面还有一堆 默认值也参与排队了。 排队后 你在输出这个数组的前5字符
作者:
Java黑马
时间:
2014-9-4 10:37
这是我写的程序,运行应该没什么问题
package csdn.a;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Reader;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
public class IOTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
File file=new File("c:\\a.txt");//创建File对象
write(file);//在硬盘上建立对象并写入数据,如果存在的话就不用这一步了
Reader fr=new FileReader(file);//读取硬盘上的文本对象
List<String> list=new ArrayList<String>();//建立List集合装入文本中的数据
int ch=0;
while((ch=fr.read())!=-1){
String s=new String((char)ch+"");
list.add(s);
}
Collections.sort(list);//对集合中的数据进行自然排序并打印输出
for(int x=0;x<list.size();x++){
System.out.println(list.get(x));
}
/*Iterator<String> it=list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}*/
}
public static void write(File file)throws Exception//在硬盘上建立对象并写入数据,如果存在的话就不用这一步了
{
if(!file.exists()){
file.createNewFile();
}
Writer fw=new FileWriter(file);
fw.write("dfbacehg");
fw.flush();
fw.close();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2