import java.io.FileReader;
import java.io.FileWriter;
import java.util.Arrays;
//把文件中的数据复制到另个文件并对文件里的数字进行排序复制
public class Demo1 {
public static void main(String[] args) throws Exception{
FileReader fr = new FileReader("C:\\Users\\fuwei\\Desktop\\Test\\aa.txt");
FileWriter fw = new FileWriter("C:\\Users\\fuwei\\Desktop\\Test\\bb.txt");
StringBuffer sb = new StringBuffer();
int c = 0;
while ((c=fr.read())!=-1){
//把读取到的内容装入到字符串中,这里面有数字和字符,所以需要把他们变成字符
//强转成字符串
sb.append((char)c);
}
// System.out.println(sb);
//字符串sb已经含有文件里的内容
//对字符串以逗号进行分割
//之所以用到toString()是因为StringBuffer中没有split方法,而String中有该方法
String[] split = sb.toString().split(",");//切割完之后会返回一个字符串数组
int[] ints = new int[split.length];
for (int i = 0;i <split.length;i++){
ints[i]=Integer.parseInt(split[i]);
}
Arrays.sort(ints);
//把排好序的数组再次装入字符串中,并用,分割
StringBuffer sb1 = new StringBuffer();
for (int i = 0; i < ints.length; i++) {
if (i==ints.length-1){
sb1.append(ints[i]);
}else{
sb1.append(ints[i]+",");
}
}
//这里必须把类型进行转换到String类型
fw.write(sb1.toString());
System.out.println("复制成功");
fw.flush();
}
}
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Demo1 {
/*
* 转换流
* 转换流的作用就是把字节流转化成字符流(小-》大)
* */
public static void main(String[] args)throws Exception {
/*
*InputStreamReader()
*OutputStreamWriter()
*/
//InputStreamReader()
//1、字节流转换成字符流(读取文件中的数据)
FileInputStream fileInputStream = new FileInputStream("C:\\Users\\fuwei\\Desktop\\Test\\aa.txt");
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
//读取文件里的信息,此时的流已经变成了字符流
char[] arr = new char[3];
int length = 0;
while ((length=inputStreamReader.read(arr))!= -1){
//打印的时候把字符数组转成字符串打印
System.out.println(new String(arr,0,length));
// fileInputStream.close();
//inputStreamReader.close();
}
//2、字节流转换成字符流(在文件里添加数据)
FileOutputStream fileOutputStream = new FileOutputStream("C:\\Users\\fuwei\\Desktop\\Test\\cc.txt");
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
outputStreamWriter.write("你好,世界");
fileInputStream.close();
outputStreamWriter.close();
System.out.println("数据写入成功");
}
}
import java.io.PrintWriter;
/*
* 打印流
* 主要是把数据写入到指定文件中,方法比其他流中的方法便利
* 如果主要是把数据写到指定位置用该方法
* */
public class Demo1 {
public static void main(String[] args) throws Exception{
//PrintWriter()
PrintWriter printWriter = new PrintWriter("C:\\Users\\fuwei\\Desktop\\Test\\ee.txt");
// 在打印流中有两种打印方法
printWriter.write("你好世界");
//其中有一个方法也可以直接打印到文件中
printWriter.println("我是打印流中的println方法");//需要注意的是这里的println方法和控制台中的方法作用一样,但是作用的文件不同
printWriter.close();
}
}
|