文本使用Writer,字节流使用 OutputStream。try(PrintWriter writer = new PrintWriter(new FileWriter("out.txt"))){ Random random = new Random(); for(int i = 0; i < 10; i++) writer.printf("%d%n",random.nextInt()); }catch(IOException e){ ... }
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class Test { public static void main(String[] args) { FileWriter file; try { file = new FileWriter("file01.txt"); BufferedWriter buf=new BufferedWriter(file); int[] arr=new int[]{100,521,125,45}; for(int i=0;i<arr.length;i++){ buf.write(String.valueOf(arr[i])+" ");
写完后flush()了吗?
import java.io.FileWriter;
import java.io.File;public class FileWriterDemo {
public static void main(String[] args)throws Exception {
File f=new File("number.txt");
if(!f.exists())
f.createNewFile();
FileWriter fw=new FileWriter(f);
int[] randomAry=new int[10];//假设10个随机数
for(int i=0;i<randomAry.length;i++){
randomAry[i]=(int)(Math.random()*100); fw.write(new Integer(randomAry[i]).toString()+" ");
}
fw.close();
}
}
所以你换一种输入流试试,DataOutputStream
new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dest), "GBK"))
使用指定编码,即可。
static void t5(){
OutputStream out = null;
String str = null;
try{
out = new FileOutputStream("d:\\test\\1\\11.txt");
str = 123+"";
out.write(str.getBytes());
out.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
Reader和writer是处理unicode字符的。
这两种抽象类的子类中的write方法是只能进行文本的读写或是数字的读写。
建议用PrintWriter将其转化为打印流。就是修饰流或叫做包装流抱在外围即可。再用prinwriter的对象的println()写出,完美支持数字和文本。
参考《Core Java》卷二
PrintStream ps = new PrintStream(new FileOutputStream("out.txt"));
ps.printf("%d %d %d %d\r\n", 100, 200, 123, 567);
ps.close();
如果你想要文本文件打开后显示97 ,应该out.write("97")我上面用FileWriter给你写了一个例子了,你可以参考
Random random = new Random();
for(int i = 0; i < 10; i++)
writer.printf("%d%n",random.nextInt());
}catch(IOException e){
...
}
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
FileWriter file;
try {
file = new FileWriter("file01.txt");
BufferedWriter buf=new BufferedWriter(file);
int[] arr=new int[]{100,521,125,45};
for(int i=0;i<arr.length;i++){
buf.write(String.valueOf(arr[i])+" ");
}buf.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}