File ac=new File("\\mobile-service\\ad.txt");//表示当前所在盘符的mobile-service文件下的ad.txt文件
使用字节流来读写文件
try {
FileInputStream fi=new FileInputStream("G:\\2222\\1.txt");
FileOutputStream fo=new FileOutputStream("G:\\2222\\2.txt");
int a;
while ((a=fi.read())!=-1){/*这里的.read方法是把字
节一个接一个的传给a,当为空的时候则返回-1;*/
fo.write(a);
}
} catch (IOException e) {
e.printStackTrace();
}
使用字符流来读写文件
try {
FileReader fr=new FileReader("D:\\21.txt");
FileWriter fw=new FileWriter("D:\\22.txt");
int a;
while ((a=fr.read())!=-1){
fw.write(a);
}
} catch (IOException e) {
e.printStackTrace();
}
}
});
读取不同的编码文本时候需要进行修正
try {
InputStreamReader ss=new InputStreamReader(new FileInputStream("D:\\21.txt"),"GBK");
OutputStreamWriter sw =new OutputStreamWriter(new FileOutputStream("D:\\22.txt"),"GBK");/*如果编码不同则需要
相应的转换一下才可以使用*/
int len;
char[] wigth=new char[1598];
while ((len=ss.read(wigth))!=-1){
sw.write(wigth,0,len);
System.out.print((char)len);
}
更换其输出的位置
PrintStream sx=new PrintStream(System.out);
PrintStream ss=new PrintStream("D:\\22.txt");
System.setOut(ss);
System.out.println("Sdfdsfsdfdsfsdfdsfsdfdsfssdfsdf");
System.setOut(sx);
System.out.println("sdfdfdfdfd");
BufferedReader bb=new BufferedReader(new InputStreamReader(System.in));
InputStreamReader cc=new InputStreamReader(System.in);/*对System.in进行包装,已达到Scanner的效果*/
序列化和反序列化
- 注意要在类里面添加Serializable接口才可以实现序列化;
public class User implements Serializable
ObjectOutputStream dos=new ObjectOutputStream(new FileOutputStream("D:\\dd.dat"));//这里要传入一个OutputStream类,下面也一样
dos.writeObject(uu);
ObjectInputStream dis=new ObjectInputStream(new FileInputStream("D:\\dd.dat"));
List<User> a = (List<User>)dis.readObject();
a.forEach(System.out::println);
随机流的运用
- public RandomAccessFile(File file, String mode) mode为下面的这几个值;
//简单的加密一个文件就只有一个指标,对指标进行操作,核心就是拉扯
RandomAccessFile fa = new RandomAccessFile(new File("D:\\3.txt"), "rw");
int a;
long start=fa.getFilePointer();
a = fa.read();
int key = 153;
while (a != -1) {
fa.seek(start);
fa.write(a^key);
start=fa.getFilePointer();
a = fa.read();
}
fa.close();