هل يمكنني استخدام الطبقة الماسح الضوئي في ملف نصي من أجل الحصول على المعلومات؟

StackOverflow https://stackoverflow.com/questions/1068988

سؤال

وهذا الرمز هو الصحيح ؟؟

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 جافا هو في الأساس سيئة جدا عندما يتعلق الأمر ترميزات).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top