هل يمكنني استخدام الطبقة الماسح الضوئي في ملف نصي من أجل الحصول على المعلومات؟
-
21-08-2019 - |
سؤال
وهذا الرمز هو الصحيح ؟؟
String note = "text.txt";
FileWriter file = new FileWriter(note);
Scanner sc = new Scanner(System.in);
System.out.println("Enter your name:");
String name = sc.next();
file.close();
وكيف يمكنني تمرير هذا الملف إلى البرنامج كما وسيطة سطر الأوامر ؟؟؟
المحلول
حسنا، أنا شخصيا أبدا استخدام FileWriter
كما أنه يستخدم الترميز الافتراضي للنظام، وهو أمر مقرف أن تفعل أكثر من مرة. أنا أفضل FileOutputStream
+ OutputStreamWriter
. ومع ذلك، وقد قلت ذلك ...
وماذا تريد لتمرير كوسيطة سطر الأوامر؟ الملف <م> الاسم م>؟ أن من السهل:
public static void main(String[] args)
{
// Insert error checking here (e.g. args.length == 0)
String note = args[0]; // For the first argument
// Rest of code here
}
وإذا كان هذا هو لا م> ماذا يعني لك، يرجى تعديل سؤالك لتوضيح ذلك.
وإذا حكمنا من خلال العنوان، قد تكون الرغبة في تحميل م> من ملف بدلا من System.in
. في هذه الحالة، تحتاج فقط لتمرير في كائن File
، أو InputStream
(مثل FileInputStream
) أو في الواقع Readable
(مثل InputStreamReader
). إذا كنت تريد الذهاب لتمر في File
أو InputStream
، أنصح بشدة أن يمر في اسم ترميز الأحرف أيضا. (تماما لماذا يستغرق كسلسلة بدلا من Charset
خارج عن ارادتي، ولكن API جافا هو في الأساس سيئة جدا عندما يتعلق الأمر ترميزات).