1、操作文件基本演示
写
public class Demo8 {
public static void main(String[] args) throws IOException {
//创建字节输出流对象
FileOutputStream fos = new FileOutputStream("demo.txt");
//数据直接写入目标文件,没有缓冲区
fos.write("aaaaaddfsdss".getBytes());
fos.close();
}
}
逐个字节读取
public class Demo9 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("demo.txt");
int ch = 0;
while((ch = fis.read()) != -1) {
System.out.println((char)ch);
}
fis.close();
}
}
逐个数组读取
public class Demo10 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("demo.txt");
byte[] buf = new byte[1024];
int length = 0;
while((length = fis.read(buf, 0, length)) != -1) {
System.out.println(new String(buf,0,length));
}
fis.close();
}
}
2、练习 - 复制mp3
直接复制
public class Demo11 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("0.mp3");
FileOutputStream fos = new FileOutputStream("1.mp3");
byte[] buf = new byte[1024];
int length = 0;
while((length = fis.read()) != -1) {
fos.write(buf,0,length);
}
fos.close();
fis.close();
}
}
高效复制
public class Demo11 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("0.mp3");
BufferedInputStream bufis = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream("1.mp3");
BufferedOutputStream bufos = new BufferedOutputStream(fos);
byte[] buf = new byte[1024];
int length = 0;
while((length = bufis.read(buf)) != -1) {
bufos.write(buf, 0, length);
}
bufis.close();
bufos.close();
}
}
3、演示键盘录入
读取键盘录入的一个数据,并打印在控制台上。
键盘本身就是一个标准的输入设备。
对于java而言,对于这种输入设备都有相应的对象。
java.lang包里的 System类
public static finael InputStream in
“标准”输入流,不用关闭。
键盘录入:
public class Demo12 {
public static void main(String[] args) throws IOException {
InputStream in = System.in;
int ch = in.read();
System.out.println(ch);
}
}
读取键盘录入:
public class Demo15 {
public static void main(String[] args) throws IOException {
InputStream in = System.in;
int ch = 0;
StringBuilder sb = new StringBuilder();
while((ch=in.read())!=-1) {
if(ch=='\r')
continue;
if(ch=='\n') {
String temp = sb.toString();
if("over".equals(temp))
break;
System.out.println(temp.toUpperCase());
sb.delete(0, sb.length());
} else {
sb.append((char)ch);
}
}
}
}