java读取txt文件中的数字为什么会是乱码呢???
FileReader fo=new FileReader("d:\\num.txt");
BufferedReader bwo=new BufferedReader(fo);
String num=bwo.readLine();
bwo.close();
System.out.println(num);
int count=Integer.parseInt(num);
count++;
//将新的次数写回去
FileWriter fi=new FileWriter("d:\\num.txt");
BufferedWriter bwi=new BufferedWriter(fi);
bwi.write(count);
bwi.close();
pw.println("您是第"+count+"访问者");报错如下:
java.lang.NumberFormatException: For input string: "?0"为什么会这样???是编码问题么,求大神解决啊
FileReader fo=new FileReader("d:\\num.txt");
BufferedReader bwo=new BufferedReader(fo);
String num=bwo.readLine();
bwo.close();
System.out.println(num);
int count=Integer.parseInt(num);
count++;
//将新的次数写回去
FileWriter fi=new FileWriter("d:\\num.txt");
BufferedWriter bwi=new BufferedWriter(fi);
bwi.write(count);
bwi.close();
pw.println("您是第"+count+"访问者");报错如下:
java.lang.NumberFormatException: For input string: "?0"为什么会这样???是编码问题么,求大神解决啊
bwi.flush();
读出时就有问题了,不是写入的问题
System.out.println(num); 打出来的是:
代码改正如下:
FileReader fo=new FileReader("F:\\num.txt");
BufferedReader bwo=new BufferedReader(fo);
String num=bwo.readLine();
bwo.close();
System.out.println(num);
int count=Integer.parseInt(num);
count++;
//将新的次数写回去
FileWriter fi=new FileWriter("F:\\num.txt");
// BufferedWriter bwi=new BufferedWriter(fi);
// bwi.write(count);
// bwi.flush();
// bwi.close();
PrintWriter out = new PrintWriter(new BufferedWriter(fi));
out.print(count);
out.close();
System.out.println("您是第"+count+"访问者");
import java.io.*;
public class Test
{
public static void main(String[] args)throws Exception
{
//read form file
FileReader fr=new FileReader("/home/yh/Downloads/test.txt");
BufferedReader br=new BufferedReader(fr);
String num=br.readLine();
br.close();
System.out.println(num); //++ num
int count=Integer.parseInt(num);
count++;
String a=String.valueOf(count);//change int to String //write to file
FileWriter fw=new FileWriter("/home/yh/Downloads/test.txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write(a,0,a.length());
bw.flush();
bw.close();
}
}
import java.io.*;
public class Test
{
public static void main(String[] args)throws Exception
{
//read form file
FileReader fr=new FileReader("/home/yh/Downloads/test.txt");
BufferedReader br=new BufferedReader(fr);
String num=br.readLine();
br.close();
System.out.println(num); //++ num
int count=Integer.parseInt(num);
count++;
num=String.valueOf(count);//注意此处,这样会避免内存修漏
//byte[] c=num.getBytes(); //write to file
FileWriter fw=new FileWriter("/home/yh/Downloads/test.txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write(num,0,num.length());
bw.flush();
bw.close();
}
}
改成这样也行
bwi.write(count+"");
因为你用的是write(int)
是写字符的