IO初级问题
BufferedReader和BufferedWriter可不可以进行文本文件以外的文件进行读写,如果可以,怎么读写,如果不行,应该用什么流来进行(除了DataOutputStream外,还有没有什么流适合传文件的,字符流和字节流都行)
[解决办法]
Reader和Writer的设计之初就是为了解决字符流的读写问题的。
有了这两个类,我们可以直接面向字符编程,而字符向二进制数据的转码过程,被隐藏在内,我们不必关心细节问题。
文件传输,一般都是面向二进制数据流来编程的,因为,既然传输文件数据,我们就没有必要关心文件的内容,我们又不是搞压缩的,传数据而已。
所以,楼主使用InputStream和OutputStream就可以了,
提高性能,可以使用BufferedInputStream
[解决办法]
BufferedReader提供的方法是read(char[] cbuf, int off, int len)和readLine();等,用来处理字符流(文本文件)。
BufferedInputStream提供的方法是read(byte[] b, int off, int len)等,处理的是字节流(二进制文件)
[解决办法]
String.getBytes(String charset)方法,可以把字符串转换成字节数组。
写是能写,但是,写进去了,能否正确读出来,就是问题了。
字符串转换成二进制数,是要看你用什么编码规则的。
[解决办法]
读文件中的内容Bufferedreader br = BufferedReader(new FileInputStream("文件路径\文件名"));往文件写字符BufferedWriter bw =.....从键盘获得获得输入的字符串Bufferedreader br = BufferedReader(new InputStreamReader(System.in));String info = br.readLine();//注意:br/bw读写的都是String型的,如果需要基本数据类型,需要强转。
[解决办法]
文本以外的的文件 如果是音频或者图片 等等二进制的东西是不能用字符流读写的 必须要用字节流 BufferedInputStream bis=new BufferedInputStream(new FileInputStream(你的文件的路径加文件名));
这是输入
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(你要输出到哪里的路径+输出到那里的文件名));
[解决办法]