xp 系统是其中的吗? 是不是指当我用输入流对象读取 a.txt 文件时候,这个输入流对象没有关 然后用输出流对象将数据写入 a.txt 文件会打不开呢? 如果我把输入流关闭后要再用输入流读取是不是要重新构造对象呢,这样不是很麻烦?
我刚才试了下对同一个文件构造两个写对象,好像可以同时写.不知道是不是我理解错了 File f = new File("D:"+File.separator+"123.txt"); OutputStream os1 = new FileOutputStream(f,true); //输出流对象--> f BufferedWriter os2 = new BufferedWriter ( new OutputStreamWriter( new FileOutputStream(f,true)));//缓冲区写对象--> f
自然
2: IO流在运行时关闭后,再次使用这个关闭的流是不是需要重新构造?
可以这么说
3: IO流不关闭可能会导致文件打不开,是指虚拟机退出后操作系统打不开,还是程序中其它的流打不开?
虚拟机退出了就没关系了 应该是有可能虚拟机没有退出的时候操作系统打不开
xp 系统是其中的吗?
是不是指当我用输入流对象读取 a.txt 文件时候,这个输入流对象没有关
然后用输出流对象将数据写入 a.txt 文件会打不开呢?
如果我把输入流关闭后要再用输入流读取是不是要重新构造对象呢,这样不是很麻烦?
我刚才试了下对同一个文件构造两个写对象,好像可以同时写.不知道是不是我理解错了
File f = new File("D:"+File.separator+"123.txt");
OutputStream os1 = new FileOutputStream(f,true); //输出流对象--> f
BufferedWriter os2 =
new BufferedWriter (
new OutputStreamWriter(
new FileOutputStream(f,true)));//缓冲区写对象--> f
os1.write(1); os2.write(2);
os1.flush(); os2.flush();
FileInputStream fis = new FileInputStream(f); //输入流对象-->f
System.out.println(fis.read());
System.out.println(fis.read());
指点一下
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;public class Test { public static void main(String[] args) throws Exception { File f = new File("123.txt");
OutputStream os1 = new FileOutputStream(f, true);
new Thread() {
public void run() {
BufferedWriter os2;
try {
os2 = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(new File("123.txt"), true)));
os2.write(456);
os2.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
Thread.sleep(10000);
os1.write(123);
os1.flush();
}}
暂时试验结果,不受两输出流同时打开限制
但是某输出流打开文件期间该文件无法删除
进一步研究下吧
2 是
3 看操作系统和要打开该文件的软件,比如你在windows下用java编一个文本文件。然后用wordpad就打不开,但是用notepad就可以