[Java]Nhập, xuất trong Java – Input, output in Java
Một bài nhập xuất đơn giản từ bàn phím trong Java với Scanner
import java.io.IOException; import java.util.*; //thu vien dung lop Scanner class java_in_out_put { public static void main(String agrv[]) throws IOException { String s; int age; Double M; Scanner inp = new Scanner(System.in); //tao doi tuong inp thuoc lop Scanner System.out.print("Insert your name : "); //Lenh in ra man hinh s = inp.nextLine(); //nhap chuoi System.out.print("Insert your age: "); age = inp.nextInt(); //nhap so nguyen System.out.println("Insert your Math: "); M = inp.nextDouble(); System.out.printf("My name is %s , I %d yaers old and I am %.2f math scoren", s, age, M); inp.close(); } }
Tiếp theo là nhập xuất file. Trong chương trình này tôi sẽ đọc từ file input.txt gồm các dòng, mỗi dòng có tên, tuổi, lương cách nhau bằng dấu phẩy, sau đó ghi vào file output.txt các thông tin trên các dòng khác nhau:
VD:
nội dung file input.txt là
Nguyễn Văn Q,21,100000.0
NGuyễn Thị B,20,200000.0
ghi vào file output.txt sẽ là
Nguyễn Văn Q
21
100000.0
NGuyễn Thị B
20
200000.0
import java.io.*; import java.util.*; class input_file { String ten[] = new String[100]; int tuoi[] = new int[100]; double luong[] = new double[100]; int i=0; void read() throws IOException //phuong thuc doc tu file { String line[] = new String[100]; FileInputStream f = new FileInputStream("input.txt"); //tao bien tep f Scanner input = new Scanner(f,"UTF-8"); //doc tu tep f su dung Scanner while(input.hasNextLine()) //trong khi chưa het file { line[i]= input.nextLine(); //doc 1 dong if(line[i].trim()!="") //neu dong khong phai rong { String item[] = line[i].split(","); //cat cac thong tin cua line bang dau phay ten[i] = item[0]; tuoi[i] = Integer.parseInt(item[1]); //chuyen strin sang int luong[i] = Double.parseDouble(item[2]); } i++; } input.close(); } void write() throws IOException //phuong thuc ghi vao file { FileOutputStream f = new FileOutputStream("output.txt"); PrintWriter output = new PrintWriter(f); int j=0; while(j<i) { output.println(ten[j]); output.println(tuoi[j]); output.println(luong[j]); j++; } output.close(); } } class java_in_out_file { public static void main(String []agr) throws IOException { input_file file = new input_file(); file.read(); file.write(); } }
a ơi , cho e hỏi là viết hàm nhập va xuất 1 mảng số như thế nào ạ.e cảm ơn a nhiều:)))
Bạn dùng vòng lặp for để nhập nhé
a ơi, cho e hỏi throws Exception với throws IOException khác nhau chỗ nào vậy a? Với 2 cái đó dùng để làm gì? tks a nhiều 🙂
Exception là ngoại lệ chyng của mọi ngoại lệ. IOException là ngoại lệ về nhập xuất.
anh ơi cho em hỏi
ví du trong file input của em có tên, tuổi, số chứng minh nhân dân, lương mà em chỉ muốn xuất ra file output là tên với số chứng minh nhân dân thôi thì làm sao ạ
Mong anh trả lời sớm
Cám ơn anh
Vậy thì cái phần write file bạn chỉ viết những gì bạn muốn.
Mình không hiểu, cùng là vào ra file nhưng Scanner/Prinwriter và FileInpuStream/FileOuputStream khác nhau như nào. Tại mình thấy dùng 2 cái đều ok.
Ủa, nó báo lỗi ở dòng 23, 24 “NumberFormatException” a Quân ơi
Như vậy chắc cái file của bạn bị sao đó, nó bảo ko đọc được số tức là không đọc được tuổi và luơng. Bạn xem file input nhé.
e sửa lại được rồi a =)))
e sửa được rồi a =))
Nếu mình muốn bỏ dấu cách trong cái input thì làm thế nào vậy anh?
ví dụ input là: Nguyen Van C, 20, 100000 mà code vẫn in ra output được
bạn split theo cái gì bạn muốn là được.
e muốn nhập một mảng số nguyên từ file thì e sẽ làm sao a
Thì làm như bình thường, chẳng qua đọc từ file thôi em.
cho e hỏi package trong java có ý nghĩa gì ạ ,nếu k dùng có bị sao k ạ
Bạn có thể tham khảo ở đây nhé: https://nguyenvanhieu.vn/package-trong-java/
sao e thấy java dài dòng vs rắc rối hơn c v ?? :((
Dài nhưng rõ ràng, dần dần bạn sẽ quen.