黑马程序员技术交流社区
标题: 字符 复制到文件的问题 [打印本页]
作者: 徐文豪 时间: 2015-6-15 17:20
标题: 字符 复制到文件的问题
1. a.字符串"yekmaakkccekymbvb",求字符串中有多少种字符以及每个字符的个数
b.把结果写入D盘名为test的文本文件中。
c.读出刚才写入test文本文件的内容。
怎样将结果写入文件中?还有怎么再从文件中读到控制台呢?
作者: 安安安 时间: 2015-6-15 17:47
本帖最后由 安安安 于 2015-6-15 17:48 编辑
文本文件的写入- import java.io.*;
- class Demo
- {
- public static void main(String[] args)throws IOException
- {
- //创建流对象。
- FileWriter fw=new FileWriter("buf.txt");
-
- //为了提高字符写入流的效率,加入了缓冲技术。
- //只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可。
- BufferedWriter bufw=new BufferedWriter(fw);
-
- for(int x=1;x<5;x++)
- {
- bufw.write("abcde"+x);
- bufw.newLine();
- bufw.flush();
- }
-
- //记住,只要用到缓冲区,就要记得刷新。
- // bufw.flush();
-
- //其实关闭缓冲区,就是在关闭缓冲区中的流对象。
- bufw.close();
-
-
- }
- }
复制代码
文本文件的读取
- class Demo
- {
- public static void main(String[] args)throws IOException
- {
- //创建流对象。
- FileReader fr=new FileReader("buf.txt");
-
- //为了提高效率,加入了缓冲技术。将字符读取流对象作为参数传递给缓冲对象的构造函数。
- BufferedReader bufr=new BufferedReader(fr);
-
- String s=null;
- while((s=bufr.readLine())!=null)
- {
- System.out.println(s);
- }
- bufr.close();
- }
- }
复制代码
作者: 耀阳圣尊 时间: 2015-6-15 17:49
你可以把读取到的结果放到一个数组里,之后遍历这个数组就显示到控制台上了,至于怎么写入一个文件中,这个很基础了吧
作者: 徐文豪 时间: 2015-6-15 19:07
public class Test {
public static void main(String[] args) throws IOException {
String str = "yekmaakkccekymbvb";
// 将字符串转为字符数组
char[] arr = str.toCharArray();
// 创建Map集合
Map<Character, Integer> map = new TreeMap<Character, Integer>();
// 遍历集合 获取每个字符
for (Character ch : arr) {
// 如果没有相同的值为1
Integer i = map.get(ch);
if (i == null) {
map.put(ch, 1);
// 如果相同就让值++,并继续循环
} else {
i++;
map.put(ch, i);
}
}
// 把字符串拼接起来
StringBuffer sb = new StringBuffer();
Set<Character> set = map.keySet();
for (Character chs : set) {
Integer i = map.get(chs);
sb.append(chs).append("(").append(i).append(")");
}
String result = sb.toString();
System.out.println(result);
// 创建一个ArrayList集合 并把结果添加到集合中
ArrayList<String> arrays = new ArrayList<String>();
arrays.add(result);
// 读写 把集合中的数据写到文件中
BufferedWriter bw = new BufferedWriter(new FileWriter("d://test.txt"));
for (String s : arrays) {
bw.write(s);
bw.newLine();
bw.flush();
}
System.out.println("-----------");
bw.close();
// 获取输入流 读取文件中的内容 在控制台输出
BufferedReader br = new BufferedReader(new FileReader("d://test.txt"));
char[] chs = new char[1024];
int len = 0;
while ((len = br.read(chs)) != -1) {
System.out.println(new String(chs, 0, len));
}
br.close();
}
}
这个是我自己写的 有没有可以优化的地方?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |